我收到错误Lock wait timeout exceeded; try restarting transaction
。这是什么原因以及如何解决问题?仅供参考:MySQL配置文件中的innodb_lock_wait_timeout = 100
。
答案 0 :(得分:6)
这是锁争用的问题,最终导致其中一个锁超时。以下是一些建议:
insert
或update
期间的关系约束,如果没有这样的索引,某些数据库会锁定整个引用的表(不知道这是否是MySQL的情况)答案 1 :(得分:0)
这是在交易需要很长时间的高流量系统上发生的(即表被锁定了很长时间)?如果是这样,您可能需要查看事务代码,以使其更短/更精细/更高效。