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 |
