INNODB_LOCKS表
该INNODB_LOCKS
表提供有关InnoDB
事务已请求但尚未获取的每个锁的信息,以及事务持有的阻止另一个事务的每个锁的信息。
注意自MySQL 8.0.1起不推荐使用该表,并删除了该表。请改用性能架构
data_locks
表。请参见“ data_locks表”。
INNODB_LOCKS
和之间的区别data_locks
:
- 如果一个事务持有一个锁,
INNODB_LOCKS
则仅在另一个事务正在等待时才显示该锁。data_locks
不管是否有任何事务在等待,都会显示该锁。- 该
data_locks
表具有对应于没有列LOCK_SPACE
,LOCK_PAGE
或LOCK_REC
。- 该
INNODB_LOCKS
表需要全局PROCESS
特权。该data_locks
表需要SELECT
从中选择表的通常“性能模式”特权。
下表显示了INNODB_LOCKS
列之间的映射data_locks
。使用此信息可以将应用程序从一个表迁移到另一个表。
从INNODB_LOCKS到data_locks列的映射
INNODB_LOCKS列 | data_locks列 |
---|---|
LOCK_ID | ENGINE_LOCK_ID |
LOCK_TRX_ID | ENGINE_TRANSACTION_ID |
LOCK_MODE | LOCK_MODE |
LOCK_TYPE | LOCK_TYPE |
LOCK_TABLE (组合的模式/表名) | OBJECT_SCHEMA (模式名称),OBJECT_NAME (表名称) |
LOCK_INDEX | INDEX_NAME |
LOCK_SPACE | 没有 |
LOCK_PAGE | 没有 |
LOCK_REC | 没有 |
LOCK_DATA | LOCK_DATA |