我在插入时遇到 MySQL 锁等待超时,这非常不寻常。通常,我们应该在更新期间遇到此问题。
我们使用非常简单的插入语句INSERT INTO Document ('title', 'page_number') VALUES('some name here','12');
在此期间我们不会锁定任何表,
- 导致此行为的可能原因是什么?
- 如何调试此情况以找出持有锁的原因?
我们正在使用 AWS Mysql aurora。如果我们需要任何其他信息,请告诉我们
更新
我尝试使用 SHOW INNODB STATUS
获取表锁详细信息,但它对我没有多大帮助,因为这个问题仅在生产中随机发生,我们无法重现它。
最佳答案
检查此链接:https://forums.aws.amazon.com/thread.jspa?threadID=234301
您可以通过上面的链接检查可能的原因。
现在如何调试此问题:创建自定义参数组,启用 Slow_query_log 并为 long_query_time 设置适当的值,并启用变量 log_queries_not_using_indexes。 当问题再次发生时,锁定慢查询日志以找出哪个查询导致锁定(它将超过锁定等待时间)。
关于mysql - 插入时获取 "Mysql::Error: Lock wait timeout exceeded",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406428/