该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_SCHEMACOLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。有关使用信息,请参阅 第 14.16.2.1 节,“使用 InnoDB 事务和锁定信息”。