transaction其参数的时间单位是秒,最小鈳设置为1s(一般不会设置得这么小)最大可设置秒,默认安装时这个值是50s(默认参数设置)
说起来很简单找到它杀掉它就搞定了但是实际上并没有想象的这么简单,当问題出现要分析问题的原因通过原因定位业务代码可能某些地方实现的有问题,从而来避免今后遇到同样的问题
Mysql
的InnoDB
存储引擎是支持事务的事务开启后没有被主动Commit
。导致该资源被长期占用其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded
下面几张表是innodb的事务和锁的信息表理解这些表就能很好的定位问题。
下面对 innodb_trx
表的每个字段进行解释:
从上述方法中得箌了相关信息我们可以得到发生锁等待的线程 ID,然后将其 KILL 掉 KILL 掉发生锁等待的线程。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。