通过一个脚本,我向本地数据库发送了数千次这样的查询:

update some_table set some_column = some_value

我忘了添加where部分,所以表中所有行的同一列都被设置为相同的a值,这样做了数千次,列被索引,所以相应的索引可能被更新了太多次.

我注意到有点不对劲,因为花了太长时间,所以我取消了 playbook .从那以后,我甚至重新启动了我的计算机,但有些东西卡在了表中,因为简单的查询需要很长时间才能运行,当我try 删除相关索引时,它失败了,并显示以下消息:

Lock wait timeout exceeded; try restarting transaction

这是一个innodb表,所以事务可能是隐式的.如何修复此表并从中删除卡住的事务?

推荐答案

我通过删除表并从备份中恢复来解决这个问题.

Mysql相关问答推荐

无法从容器从APS. NET应用程序连接到MySQL服务器容器

SQL:创建新列并将现有表中的值追加到新创建的列中

SQL/Pyspark -判断条件

SQL MaxSum查询为列 Select 了不正确的值

MySQL多次联接同一个表使计数变得奇怪

Hibernate 不创建表'

从 NextJS/Prisma 添加用户 ID (FK) 到 MySQL 表

Select 同一张表中的结果数?

如何清除mysql 8 innodb中的数据库缓存

获取 MySQL 中每一行之间负差的总和

连接两个表.使用连接列作为分组依据,然后根据时间戳 Select 最新行

根据单个日期字段获取范围/天数

带有 PARTITION BY 子句的 ROW_NUMBER() 停止在 MariaDB 上工作

添加一个日期字段大于另一个日期字段的要求

MySQL 如何处理并发插入?

授予用户对 MySQL 中有限数量表的访问权限

在 MySQL 中检测 utf8 损坏的字符

在 MYSQL 中按枚举字段排序

MySQL 删除多列

在 MySQL Workbench 中导出超过 1000 条记录的查询结果