MySQL 8.4 Release Notes
17.15.2.3 InnoDB 事务和锁定信息的持久性和一致性
事务和锁定表(INFORMATION_SCHEMA
INNODB_TRX
表、性能_schemadata_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
表或性能chemathreads
表不一致。例如,当比较
InnoDB
事务和锁定表中的数据与PROCESSLIST
表时,需要小心。即使您执行单个SELECT
语句(例如,连接INNODB_TRX
和PROCESSLIST
),这些表的内容通常不一致。可能的情况是,INNODB_TRX
表中引用了不在PROCESSLIST
表中的行,或者当前执行的 SQL 查询在INNODB_TRX.TRX_QUERY
中不同于PROCESSLIST.INFO
中的查询。