从脚本中,我将这样的查询发送了数千次到本地数据库:
update some_table set some_column = some_value
我忘了添加where部分,因此同一列被设置为表中所有行的相同值,并且完成了数千次,并且对该列进行了索引,因此相应的索引可能被更新了太多次。
我注意到出了点问题,因为花了太长时间,所以我杀死了脚本。从那以后,我什至重新启动了计算机,但是表中有些东西卡住了,因为简单的查询需要很长时间才能运行,当我尝试删除相关的索引时,它失败并显示以下消息:
Lock wait timeout exceeded; try restarting transaction
这是一个innodb表,因此卡住的事务可能是隐式的。如何修复该表并从中删除卡住的事务?
SHOW FULL PROCESSLIST
什么?