-
Notifications
You must be signed in to change notification settings - Fork 111
INNODB_LOCKS
xiaoboluo768 edited this page Jun 7, 2020
·
2 revisions
- 该表提供查询innodb引擎事务中正在请求的且并未获得的且同时阻塞了其他事务的锁信息(即没有发生不同事务之间的锁等待的锁信息,在这里是查看不到的,例如,只有一个事务时,该事务所加的锁信息无法查看到)
- 该表中的内容可以用于诊断高并发下的锁争用信息
- 该表为memory引擎临时表,访问该表需要拥有具有process权限
- 表定义语句
CREATE TEMPORARY TABLE `INNODB_LOCKS` (
`lock_id` varchar(81) NOT NULL DEFAULT '',
`lock_trx_id` varchar(18) NOT NULL DEFAULT '',
`lock_mode` varchar(32) NOT NULL DEFAULT '',
`lock_type` varchar(32) NOT NULL DEFAULT '',
`lock_table` varchar(1024) NOT NULL DEFAULT '',
`lock_index` varchar(1024) DEFAULT NULL,
`lock_space` bigint(21) unsigned DEFAULT NULL,
`lock_page` bigint(21) unsigned DEFAULT NULL,
`lock_rec` bigint(21) unsigned DEFAULT NULL,
`lock_data` varchar(8192) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8
- 表字段含义
- LOCK_ID:InnoDB内部的唯一锁ID号。尽管LOCK_ID列值包含事务ID(由事务ID和锁ID组成),但LOCK_ID中的数据格式随时可能会发生变化(所以请不要编写应用程序来解析LOCK_ID列值)
- LOCK_TRX_ID:持有该锁的事务ID。可以使用该字段和INNODB_TRX表中的TRX_ID关联来在INNODB_TRX表中查询更多的事务信息
- LOCK_MODE:锁模式(如何请求锁)。允许的值有:S [,GAP]、X [,GAP]、IS [,GAP]、IX [,GAP]、AUTO_INC、UNKNOWN。除AUTO_INC和UNKNOWN以外,其他锁模式都表示为间隙锁(如果存在)。有关S,X,IS,IX和间隙锁的信息,详见链接:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html
- LOCK_TYPE:锁类型。允许的值有,行级锁时该字段值显示为RECORD,表级锁时该字段值显示为TABLE
- LOCK_TABLE:锁定记录相关的表名称
- LOCK_INDEX:如果LOCK_TYPE是RECORD,则该字段显示锁定记录相关的索引名称,否则该字段值为NULL
- LOCK_SPACE:如果LOCK_TYPE是RECORD,则该字段显示锁定记录相关的表空间ID,否则该字段值为NULL
- LOCK_PAGE:如果LOCK_TYPE是RECORD,则该字段值显示锁定记录相关的page number,否则该字段值为NULL
- LOCK_REC:如果LOCK_TYPE为RECORD,则该字段值显示锁定记录在页内的堆号,否则该字段值为NULL
- LOCK_DATA:该字段值显示与锁定记录相关的数据(如果存在锁定数据记录的话)。如果LOCK_TYPE为RECORD,则该列值显示的值为锁定记录的主键值,否则为NULL。如果没有主键,则LOCK_DATA是具有唯一性的InnoDB内部行ID号值。如果对索引中锁定的键值比最大值还大,或者键值是一个间隙锁定,则LOCK_DATA列值将显示伪记录(supremum pseudo-record)。当包含已锁定记录的页面不在缓冲池中时(在锁定期间已将其分页到磁盘的情况下),InnoDB为避免不必要的磁盘操作不会从磁盘获取页面。此时,LOCK_DATA列值显示为NULL
- 表记录内容示例(即将废弃,8.0中使用performance_schema.data_locks视图代替)
root@localhost : information_schema 12:33:45> select * from innodb_locks\G;
*************************** 1. row ***************************
lock_id: 2476293:115:5:2
lock_trx_id: 2476293
lock_mode: X
lock_type: RECORD
lock_table: `luoxiaobo`.`t_luoxiaobo`
lock_index: PRIMARY
lock_space: 115
lock_page: 5
lock_rec: 2
lock_data: 5
*************************** 2. row ***************************
lock_id: 2476292:115:5:2
lock_trx_id: 2476292
lock_mode: X
lock_type: RECORD
lock_table: `luoxiaobo`.`t_luoxiaobo`
lock_index: PRIMARY
lock_space: 115
lock_page: 5
lock_rec: 2
lock_data: 5
2 rows in set, 1 warning (0.00 sec)
上一篇:VIEWS表 |下一篇:INNODB_TRX表
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!