Mysql &引用;已超过锁定等待超时时间";processlist中没有进程

Mysql &引用;已超过锁定等待超时时间";processlist中没有进程,mysql,locking,Mysql,Locking,在尝试以合理的限制执行一些束删除时,我遇到了下一个错误: query=(DELETE FROM `A` WHERE `id` < 123456 LIMIT 1000) exception=(1205, 'Lock wait timeout exceeded; try restarting transaction') 我知道where is可能是死锁,但是只显示完整的processlist输出本身。在哪里挖掘 InnoDB,MySQL 5.5这意味着应该提交一个事务。检查可能使用此表运行

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

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

exception=(1205, 'Lock wait timeout exceeded; try restarting transaction')
我知道where is可能是死锁,但是
只显示完整的processlist
输出本身。在哪里挖掘


InnoDB,MySQL 5.5

这意味着应该提交一个事务。检查可能使用此表运行的其他会话或其他应用程序。

选择后可能会有未关闭的事务。我已经解决了(我希望)在单独(而不是一些transaciotn部分)选择后添加提交/回滚的情况


这个想法对我来说很奇怪,所以在我尝试之前,我已经花了一些时间做了其他的尝试。它也有帮助。

我假设任何其他活动会话都应该在
显示完整的进程列表
输出中。我说的对吗?ShowProcessList显示打开的会话,应该有具有事务的会话,但信息字段(查询)可以为空。使用SHOW OPEN tables命令检查锁定的表。但是
SHOW PROCESSLIST
中没有显示会话,并且
SHOW OPEN tables
在我的表上显示非零数量的锁。若要强制显示PROCESSLIST view,所有会话都将授予进程权限。显示在_use=3中返回的打开的表,这意味着使用了该表。
mysql> SHOW OPEN TABLES like 'A';
+----------+----------------------+--------+-------------+
| Database | Table                | In_use | Name_locked |
+----------+----------------------+--------+-------------+
| D        | A                    |      3 |           0 |
+----------+----------------------+--------+-------------+
1 row in set (0.22 sec)