mysql - "Lock wait timeout exceeded"进程列表中没有进程

标签 mysql locking

我在尝试以合理的限制执行一些批量删除时遇到了下一个错误:

query=(DELETE FROM `A` WHERE `id` < 123456 LIMIT 1000)

exception=(1205, 'Lock wait timeout exceeded; try restarting transaction')

还有

mysql> SHOW OPEN TABLES like 'A';
+----------+----------------------+--------+-------------+
| Database | Table                | In_use | Name_locked |
+----------+----------------------+--------+-------------+
| D        | A                    |      3 |           0 |
+----------+----------------------+--------+-------------+
1 row in set (0.22 sec)

我发现 where is 可能是死锁,但 show full processlist 仅输出其自身。从哪里挖掘?

InnoDB、MySQL 5.5

最佳答案

这意味着有一个事务需要提交。检查可以与此表一起操作的其他 session 或其他应用程序。

关于mysql - "Lock wait timeout exceeded"进程列表中没有进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752385/

相关文章:

macos - 与 OS X 钥匙串(keychain)关联的不可见文件

mysql - sql查询查找列数据的唯一组合

java - 无法将 Grails 3.3 与 mysql 数据库连接

java - TX行锁争用: Inserting Duplicate values for Unique Key

database - 启用集群模式的 Redis 锁

c# - 无锁引用计数

php - 防止在并发进程中选择相同的行 - MySql PHP

MySQL 语句 ON DUPLICATE KEY 对于非键

php - 我想从 php 对象类添加自定义属性

MySQL:获取详细页面和摘要页面的总数