MySQL 9.0 发行说明
事务和锁定表(INFORMATION_SCHEMA
INNODB_TRX
表、性能架构 data_locks
和 data_lock_waits
表)公开的数据是快速变化数据的快照。这与用户表不同,用户表中的数据只有在应用程序发起的更新发生时才会改变。底层数据是内部系统管理数据,并且可以非常快地改变
INNODB_TRX
、data_locks
和data_lock_waits
表中的数据可能不一致。data_locks
和data_lock_waits
表公开InnoDB
存储引擎的实时数据,以提供有关INNODB_TRX
表中事务的锁定信息。从锁定表检索到的数据在执行SELECT
时存在,但在客户端使用查询结果时可能已经消失或更改。将
data_locks
与data_lock_waits
联接可以显示data_lock_waits
中的行,这些行标识data_locks
中不再存在或尚未存在的父行。事务和锁定表中的数据可能与
INFORMATION_SCHEMA
PROCESSLIST
表或性能架构threads
表中的数据不一致。例如,在比较
InnoDB
事务和锁定表中的数据与PROCESSLIST
表中的数据时,应格外小心。即使发出单个SELECT
(例如,联接INNODB_TRX
和PROCESSLIST
),这些表的内容通常也不一致。INNODB_TRX
可能引用PROCESSLIST
中不存在的行,或者事务在INNODB_TRX.TRX_QUERY
中显示的当前执行的 SQL 查询可能与PROCESSLIST.INFO
中的查询不同。