广州明生堂生物科技有限公司


MySQL 5.7 原理 InnoDB 事务和锁定信息的持久性和一致性

网络编程 MySQL 5.7 原理 InnoDB 事务和锁定信息的持久性和一致性 09-20

笔记

本节描述了由性能模式data_locksdata_lock_waits表公开的锁定信息,它们取代了MySQL 8.0 中的INFORMATION_SCHEMA INNODB_LOCKSINNODB_LOCK_WAITS表。有关根据旧INFORMATION_SCHEMA表编写的类似讨论,请参阅 MySQL 5.7 参考手册中的 InnoDB 事务和锁定信息的持久性和一致性。

事务和锁定表(INFORMATION_SCHEMA INNODB_TRX表、性能模式data_locksdata_lock_waits表)公开的数据代表了对快速变化的数据的一瞥。这与用户表不同,其中数据仅在应用程序启动的更新发生时才会更改。底层数据是内部系统管理的数据,并且可以非常迅速地更改:

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

    data_locksdata_lock_waits表公开来自存储引擎的实时数据 ,InnoDB以提供有关表中事务的锁定信息 INNODB_TRX。从锁表中检索到的数据在 SELECT执行时存在,但在客户端使用查询结果时可能已经消失或更改。

    加入data_locks可以 data_lock_waits显示标识不再存在或尚不存在 data_lock_waits的父行的行 。data_locks

  • 事务表和锁定表中的数据可能与 INFORMATION_SCHEMA PROCESSLIST表或性能模式threads 表中的数据不一致。

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


编辑:广州明生堂生物科技有限公司

标签:数据,事务,性能,模式,信息