系统表介绍
INNODB_LOCKS 记录了innodb 事务锁等待信息,包含求而不得的锁,以及一个事务阻塞另一个事务的信息。
列名 | 含义 |
---|---|
lock_id | InnoDB内部的唯一锁ID号 |
lock_trx_id | 持有该锁事务编号 |
lock_mode | 锁模式 (S,X,IS,IX,GAP,AUTO_INC UNKNOWN) |
lock_type | 锁类型 (record index) |
lock_table | 已锁定或包含锁定记录的表的名称。 |
lock_index | 如是记录锁,存储索引名称,否则为空 |
lock_space | 如是记录锁,存储所在表空间ID,否则为空 |
lock_page | 如是记录锁,存储所在表空间ID |
lock_rec | 如是记录锁, 存储锁定的行数 |
lock_data | 与锁相关的数据。如果lock_type为行锁时,该值是锁记录的主键值,否则为空。这列包含锁定行的主键列的值,转化为一个有效的字符串,如果没有主键,lock_data是唯一innodb内部行id号。如果是键值或者范围大于索引的最大值会使用间隙锁,lock_data表示为supremum pseudo-record。当包含锁记录的页不在buffer pool内,innodb不去从磁盘获取页,为了避免不必要的磁盘操作,lock_data为空。 |
实例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G
*************************** 1. row ***************************
lock_id: 3723:72:3:2
lock_trx_id: 3723
lock_mode: X
lock_type: RECORD
lock_table: `mysql`.`t`
lock_index: PRIMARY
lock_space: 72
lock_page: 3
lock_rec: 2
lock_data: 1, 9
*************************** 2. row ***************************
lock_id: 3722:72:3:2
lock_trx_id: 3722
lock_mode: S
lock_type: RECORD
lock_table: `mysql`.`t`
lock_index: PRIMARY
lock_space: 72
lock_page: 3
lock_rec: 2
lock_data: 1, 9