Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Persistence and Consistency of InnoDB Transaction and Locking Information

17.15.2.3 InnoDB事务和锁定信息的一致性和持久性

事务和锁定表(INFORMATION_SCHEMA INNODB_TRX 表,Performance Schema data_locksdata_lock_waits 表)暴露了快速变化的数据。这与用户表不同,用户表的数据只有在应用程序初始化更新时才会改变。底层数据是内部系统管理的数据,可以非常快速地改变:

  • 数据可能不一致于 INNODB_TRXdata_locksdata_lock_waits 表之间。

    Performance Schema data_locksdata_lock_waits 表暴露了来自 InnoDB 存储引擎的实时数据,以提供事务锁信息在 INNODB_TRX 表中的锁信息。从锁表中检索的数据存在于 SELECT 执行时,但可能在查询结果被客户端消费时已经消失或改变。

    data_locksdata_lock_waits 连接可以显示 data_lock_waits 中的行,它们在 data_locks 中没有对应的父行或不存在。

  • 事务和锁定表中的数据可能不一致于 INFORMATION_SCHEMA PROCESSLIST 表或 Performance Schema threads 表中的数据。

    例如,您应该小心比较事务和锁定表中的数据与 PROCESSLIST 表中的数据。即使您发出单个 SELECT(连接 INNODB_TRXPROCESSLIST,例如),这些表中的内容通常不一致。可能 INNODB_TRX 引用了 PROCESSLIST 中不存在的行,或者当前执行的 SQL 查询在 INNODB_TRX.TRX_QUERY 中与 PROCESSLIST.INFO 中的查询不同。