文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  InnoDB INFORMATION_SCHEMA 事务和锁定信息

17.15.2 InnoDB INFORMATION_SCHEMA 事务和锁定信息

一个 INFORMATION_SCHEMA 表和两个性能模式表使您能够监控 InnoDB 事务并诊断潜在的锁定问题

  • INNODB_TRX: 此 INFORMATION_SCHEMA 表提供了有关当前在 InnoDB 内部执行的每个事务的信息,包括事务状态(例如,它是否正在运行或等待锁定)、事务开始时间以及事务正在执行的特定 SQL 语句。

  • data_locks: 此性能模式表包含每个持有锁和每个被阻塞的锁定请求的记录,这些请求正在等待持有锁释放

    • 对于每个持有锁,无论持有锁的事务状态如何,都有一个记录 (INNODB_TRX.TRX_STATERUNNINGLOCK WAITROLLING BACKCOMMITTING)。

    • InnoDB 中每个等待另一个事务释放锁的事务 (INNODB_TRX.TRX_STATELOCK WAIT) 都被一个阻塞锁定请求阻塞。该阻塞锁定请求是针对另一个事务以不兼容模式持有的行锁或表锁。锁定请求始终具有与阻塞请求的模式不兼容的模式(读取与写入、共享与排他)。

      阻塞的事务无法继续,直到另一个事务提交或回滚,从而释放请求的锁。对于每个被阻塞的事务,data_locks 包含一个描述事务请求的每个锁的记录,以及阻塞该请求的任何锁。

  • data_lock_waits: 此性能模式表指示哪些事务正在等待特定锁,或者特定事务正在等待哪个锁。此表包含一个或多个关于每个被阻塞的事务的记录,指示其请求的锁以及任何阻塞该请求的锁。 REQUESTING_ENGINE_LOCK_ID 值引用事务请求的锁,而 BLOCKING_ENGINE_LOCK_ID 值引用阻止第一个事务继续执行的锁(由另一个事务持有)。对于任何给定的被阻塞事务,data_lock_waits 中的所有记录具有相同的 REQUESTING_ENGINE_LOCK_ID 值,但具有不同的 BLOCKING_ENGINE_LOCK_ID 值。

有关上述表的更多信息,请参见 第 28.4.28 节“INFORMATION_SCHEMA INNODB_TRX 表”第 29.12.13.1 节“data_locks 表”第 29.12.13.2 节“data_lock_waits 表”