MySQL 8.4 发行说明
事务和锁定表(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
中的查询不同。