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