最佳答案
通过一个脚本,我向本地数据库发送了数千次这样的查询:
update some_table set some_column = some_value
我忘了添加 where 部分,所以同一列被设置为表中所有行的相同值,这样做了数千次,并且该列被索引,所以相应的索引可能被更新了太多次。
我注意到有些不对劲,因为花了太长时间,所以我把剧本删掉了。从那以后我甚至重新启动了我的电脑,但是有些东西卡在了表格里,因为简单的查询需要很长的时间来运行,当我试图删除相关的索引时,它失败了,这个消息:
Lock wait timeout exceeded; try restarting transaction
这是一个 Innovdb 表,所以卡住的事务可能是隐式的。我如何修复这个表,并从中删除卡住的事务?