java后台更新mysql的库时, 多个线程更新同一个表数据时,总是报错连接超时.查看锁见图, 没有锁住,但是trx表一直有一条数据在那. 为什么? 求大神指导.
mysql有表锁,也有行锁,但行锁是基于索引的,因此,建议你适当增加合适的索引,就可以激活行锁,就可以解除当前多线程锁的问题,仅供参考.<imgsrc="https://www.oschina.net/js/ke/plugins/emoticons/images/3.gif"alt="">连接超时和事务超时是两个不同的错。
回复<aclass='referer'target='_blank'>@long_ai_xin:是否是用了连接池,而且在真正执行操作前,有较长时间(按mysql默认设置是8小时左右)基本没什么操作业务。Cause:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communicationslinkfailure同时更新时,可否截屏下showfullprocesslist回复<aclass='referer'target='_blank'>@long_ai_xin:还有,设置的max_connections是否足够?回复<aclass='referer'target='_blank'>@long_ai_xin:奇怪了,数据库没在更新数据的嘛。。建议查看二进制日志是否执行了你所说的更新语句,如果没有,那就要找程序的问题了。在楼下上传了.<imgsrc="http://static.oschina.net/uploads/space/2016/1020/105716_Xg9s_2320451.jpg"alt="">
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。