超过MySQL锁等待超时
我已超过错误超过MySQL锁等待超时,mysql,locking,timeout,Mysql,Locking,Timeout,我已超过错误锁定等待超时;尝试重新启动事务。原因是什么?如何解决问题?仅供参考:innodb\u lock\u wait\u timeout=100在MySQL配置文件中。这是否发生在高流量系统上,其中事务需要很长时间(即表被锁定很长时间)?如果是这样,您可能希望查看事务代码,使其更短/更细粒度/更高性能 这是锁争用的问题,最终导致其中一个锁超时。以下是一些建议: 确保您有正确的索引,这些索引导致行级别锁定,而不是表级别锁定。这将减少争用 确保在外键上有索引。为了在insert或update期
锁定等待超时;尝试重新启动事务
。原因是什么?如何解决问题?仅供参考:innodb\u lock\u wait\u timeout=100
在MySQL配置文件中。这是否发生在高流量系统上,其中事务需要很长时间(即表被锁定很长时间)?如果是这样,您可能希望查看事务代码,使其更短/更细粒度/更高性能 这是锁争用的问题,最终导致其中一个锁超时。以下是一些建议:
- 确保您有正确的索引,这些索引导致行级别锁定,而不是表级别锁定。这将减少争用李>
- 确保在外键上有索引。为了在
或insert
期间检查关系约束,如果没有这样的索引,一些数据库会锁定整个引用表(不知道MySQL是否是这种情况)update
- 如果问题仍然存在,请尝试使事务更快/更小。同样,这将减少数据库上的争用
- 增加超时,但保持值合理