如何识别MySQL中持有'等待表元数据锁”的事务?

Mary-Kate Olsen
发布: 2024-11-01 01:45:02
原创
150 人浏览过

How to Identify the Transaction Holding the

定位导致“等待表元数据锁”状态的事务

在MySQL中,遇到“等待表元数据锁”消息DDL 操作表示另一个事务持有的锁。要确定罪魁祸首交易,请考虑以下方法:

MySQL 版本 5.7.3

  • SHOW ENGINE INNODB STATUS G:
  • 此命令显示“TRANSACTIONS”部分,列出未完成的事务。

INFORMATION_SCHEMA表

  • SELECT * FROM INNODB_LOCK_WAITS:
  • 检索有关所有锁等待的信息。
  • SELECT * FROM INNODB_LOCKS WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID从INNODB_LOCK_WAITS):
  • 标识阻塞事务。
  • SELECT * FROM INNODB_LOCKS INNER 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

以上是如何识别MySQL中持有'等待表元数据锁”的事务?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!