Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  InnoDB INFORMATION_SCHEMA Transaction and Locking Information

17.15.2 InnoDB INFORMATION_SCHEMA 事务和锁定信息

一个INFORMATION_ SCHEMA表和两个Performance Schema 表使您能够监控InnoDB事务并诊断潜在的锁定问题:

  • INNODB_TRX:这个INFORMATION_ SCHEMA表提供了关于当前正在执行的每个事务的信息,包括事务状态(例如,它是否在运行或等待锁定),事务开始时间和事务正在执行的特定SQL语句。

  • data_locks: 这个性能架构表包含每个持有锁定的行和每个等待锁定的锁定请求的行:

    • 对每个持有锁定,无论事务状态(INNODB_TRX.TRX_STATERUNNINGLOCK WAITROLLING BACKCOMMITTING)都有一行。

    • 每个在 InnoDB 等待另一个事务释放锁定的事务(INNODB_TRX.TRX_STATELOCK WAIT)被阻塞由另一个事务持有的不兼容模式的锁定请求所阻塞。锁定请求总是与阻塞请求的锁定模式不兼容(读 vs. 写、共享 vs. 排他)。

      等待的事务不能继续执行,直到另一个事务提交或回滚,从而释放请求的锁定。对于每个被阻塞的事务,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节,“数据锁表”第29.12.13.2节,“数据锁等待表”