### 15.15.2 InnoDB 信息\_SCHEMA 交易和锁定信息

[15.15.2.1 使用 InnoDB 事务和锁定信息](innodb-information-schema-examples.html)
[15.15.2.2 InnoDB 锁定和锁定等待信息](innodb-information-schema-understanding-innodb-locking.html)
[15.15.2.3 InnoDB 事务和锁定信息的持久性和一致性](innodb-information-schema-internal-data.html)

[](<>)[](<>)

笔记

本节描述了 Performance Schema 公开的锁定信息[`数据锁`](performance-schema-data-locks-table.html)和[`data_lock_waits`](performance-schema-data-lock-waits-table.html)表，它取代了`INFORMATION_SCHEMA` `INNODB_LOCKS`和`INNODB_LOCK_WAITS`MySQL 8.0 中的表。对于用较旧的术语编写的类似讨论`INFORMATION_SCHEMA`表，见[InnoDB 信息\_SCHEMA 交易和锁定信息](https://dev.mysql.com/doc/refman/5.7/en/innodb-information-schema-transactions.html)， 在[MySQL 5.7 参考手册](https://dev.mysql.com/doc/refman/5.7/en/).

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

-   [`INNODB_TRX`](information-schema-innodb-trx-table.html)：这个`信息模式`表提供了有关内部当前执行的每个事务的信息`InnoDB`，包括事务状态（例如，它是否正在运行或等待锁定）、事务何时启动，以及事务正在执行的特定SQL语句。

    [](<>)

-   [`数据锁`](performance-schema-data-locks-table.html)：此性能架构表包含每个保持锁的一行，以及在等待释放保持锁时被阻止的每个锁定请求：

    -   无论持有锁的事务的状态如何，每个持有的锁都有一行(`INNODB_TRX。TRX_州`是`跑步`,`锁等一下`,`后退`或`承诺`).

    -   InnoDB中等待另一个事务释放锁的每个事务(`INNODB_TRX。TRX_州`是`锁等一下`)仅被一个阻止锁定请求阻止。该阻塞锁请求用于另一个事务在不兼容模式下持有的行或表锁。锁请求的模式始终与阻止请求的已持有锁的模式（读与写、共享与独占）不兼容。

        被阻止的事务无法继续，直到另一个事务提交或回滚，从而释放请求的锁。对于每个被阻止的交易，[`数据锁`](performance-schema-data-locks-table.html)包含一行，描述事务已请求并正在等待的每个锁。

    [](<>)

-   [`数据锁定等待`](performance-schema-data-lock-waits-table.html)：此性能模式表指示哪些事务正在等待给定的锁，或者给定事务正在等待哪个锁。对于每个被阻止的事务，此表包含一行或多行，指示它已请求的锁以及阻止该请求的任何锁。这个`请求引擎锁定ID`值是指事务请求的锁，以及`阻塞引擎锁定ID`值是指阻止第一个事务继续进行的锁（由另一个事务持有）。对于任何给定的被阻止的事务，中的所有行[`数据锁定等待`](performance-schema-data-lock-waits-table.html)对…有同样的价值`请求引擎锁定ID`不同的价值观`阻塞引擎锁定ID`.

     [](<>)

    有关上述表格的更多信息，请参阅[第26.4.28节，“信息\_模式INNODB_TRX表格“](information-schema-innodb-trx-table.html), [第27.12.13.1节，“数据\_“锁表”](performance-schema-data-locks-table.html)和[第27.12.13.2节，“数据\_锁\_“等待表”](performance-schema-data-lock-waits-table.html).
