该INNODB_LOCK_WAITS
表包含每个阻塞事务的一行或多行InnoDB
,指示它已请求的锁以及阻塞该请求的任何锁。
从 MySQL 5.7.14 开始不推荐使用此表,并在 MySQL 8.0 中删除。
该INNODB_LOCK_WAITS
表有以下列:
REQUESTING_TRX_ID
请求(阻止)交易的 ID。
REQUESTED_LOCK_ID
事务正在等待的锁的 ID。要获取有关锁的详细信息,请将此列与表的列连接
LOCK_ID
起来INNODB_LOCKS
。BLOCKING_TRX_ID
阻塞事务的 ID。
BLOCKING_LOCK_ID
一个事务持有的锁的 ID,阻止另一个事务继续进行。要获取有关锁的详细信息,请将此列与表的列连接
LOCK_ID
起来INNODB_LOCKS
。
例子
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G
*************************** 1. row ***************************
requesting_trx_id: 3396
requested_lock_id: 3396:91:3:2
blocking_trx_id: 3395
blocking_lock_id: 3395:91:3:2
笔记
使用此表可帮助诊断在高并发负载期间出现的性能问题。其内容如 第 14.16.2.3 节,“InnoDB 事务和锁定信息的持久性和一致性”中所述进行了更新。
您必须具有
PROCESS
查询此表的权限。使用
INFORMATION_SCHEMA
COLUMNS
表或SHOW COLUMNS
语句查看有关此表的列的其他信息,包括数据类型和默认值。有关使用信息,请参阅 第 14.16.2.1 节,“使用 InnoDB 事务和锁定信息”。