如何找到哪个事务导致“等待表元数据锁定”状态?

德鲁

我试图在表上执行一些DDL,并SHOW PROCESSLIST导致出现“正在等待表元数据锁定”消息。

我如何找出尚未关闭的交易?

我正在使用MySQL v5.5.24。

乔迪
SHOW ENGINE INNODB STATUS \G

寻找部分-

TRANSACTIONS

我们可以使用INFORMATION_SCHEMA表。

有用的查询

要检查所有锁事务正在等待:

USE INFORMATION_SCHEMA;
SELECT * FROM INNODB_LOCK_WAITS;

阻止交易的列表:

SELECT * 
FROM INNODB_LOCKS 
WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID FROM INNODB_LOCK_WAITS);

要么

SELECT INNODB_LOCKS.* 
FROM INNODB_LOCKS
JOIN INNODB_LOCK_WAITS
  ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID);

特定表上的锁列表:

SELECT * FROM INNODB_LOCKS 
WHERE LOCK_TABLE = db_name.table_name;

等待锁的事务列表:

SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY
FROM INNODB_TRX
WHERE TRX_STATE = 'LOCK WAIT';

参考- MySQL的故障排除:怎么办时,查询不工作,第6章-第96页。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MariaDB InnoDB表:如何查找导致“等待表元数据锁定”的语句

MySQL Dump等待表元数据锁定

如何在TRUNCATE TABLE上解决MySQL Innodb“等待表元数据锁定”?

什么是Mysql表元数据锁定等待队列排序

哪个表提供来自星号数据库的实时“等待呼叫”状态?

SSIS表锁定事务

我如何找到哪个dll导致错误?

laravel将数据库事务锁定表吗?

postgresql事务中的表状态如何工作?

更新 hive 事务表中的数据如何导致 HDFS 中文件的文件创建/更新

如何找到哪个Java / Scala线程已锁定文件?

如何在事务之外以独占方式锁定和解锁表

锁定表直到事务提交

导致C ++ 11 std :: mutex将阻塞的线程锁定为被动等待状态?

如何找到哪个异步操作触发ngZone(导致更改检测)?

如何在事务表中查找仍处于活动状态的记录

玛丽亚数据库。使用事务回滚而不锁定表

如何从元数据中找到OData版本

使用锁定表时的事务+回滚

SQL Server 事务失败并且表被锁定

休眠和事务以及表锁定

由于元数据锁定,导致应用程序SQL Server超时?

分布式事务正在等待锁定

如何使用事务复制避免表锁定并复制大型文章

如何合并几个查询的事务表,每个表代表一个状态?

等待状态变化导致重复动作发出

在Firebird脚本中创建表会导致死锁导致“元数据更新失败”

如何使用元数据构造SQL表

如何通过Qt锁定数据库中的表?