超出MySQL锁等待超时

我有错误锁定等待超时;尝试重新启动事务.这是什么原因以及如何解决问题?仅供参考:MySQL配置文件中的innodb_lock_wait_timeout = 100.

解决方法:

这是锁争用的问题,最终导致其中一个锁超时.以下是一些建议:

>确保您具有正确的索引,这导致行级锁定而不是表级锁定.这将减少争用.
>确保您有外键约束的索引.要在插入或更新期间检查关系约束,如果没有这样的索引,某些数据库会锁定整个引用的表(不知道这是否是MySQL的情况)
>如果问题仍然存在,请尝试使事务更快/更小.同样,这将减少对数据库的争用.
>增加超时但保持值合理

上一篇:c#-在两个连续的语句中读取/写入布尔时,是否需要锁定布尔?


下一篇:导入数据库转储时挂起mysql