文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man 页面 (TGZ) - 258.2Kb
Man 页面 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  events_transactions_current 表

29.12.7.1 events_transactions_current 表

events_transactions_current 表包含当前事务事件。该表为每个线程存储一行,显示线程最近监控的事务事件的当前状态,因此没有系统变量用于配置表大小。例如

mysql> SELECT *
       FROM performance_schema.events_transactions_current LIMIT 1\G
*************************** 1. row ***************************
                      THREAD_ID: 26
                       EVENT_ID: 7
                   END_EVENT_ID: NULL
                     EVENT_NAME: transaction
                          STATE: ACTIVE
                         TRX_ID: NULL
                           GTID: 3E11FA47-71CA-11E1-9E33-C80AA9429562:56
                            XID: NULL
                       XA_STATE: NULL
                         SOURCE: transaction.cc:150
                    TIMER_START: 420833537900000
                      TIMER_END: NULL
                     TIMER_WAIT: NULL
                    ACCESS_MODE: READ WRITE
                ISOLATION_LEVEL: REPEATABLE READ
                     AUTOCOMMIT: NO
           NUMBER_OF_SAVEPOINTS: 0
NUMBER_OF_ROLLBACK_TO_SAVEPOINT: 0
    NUMBER_OF_RELEASE_SAVEPOINT: 0
          OBJECT_INSTANCE_BEGIN: NULL
               NESTING_EVENT_ID: 6
             NESTING_EVENT_TYPE: STATEMENT

在包含事务事件行的表中,events_transactions_current 是最基本的。其他包含事务事件行的表在逻辑上都是从当前事件派生的。例如,events_transactions_historyevents_transactions_history_long 表分别包含已结束的最近事务事件的集合,每个线程最多包含一定数量的行,而所有线程的全局范围则没有限制。

有关三个事务事件表之间关系的更多信息,请参见 第 29.9 节,“用于当前和历史事件的性能模式表”.

有关配置是否收集事务事件的信息,请参见 第 29.12.7 节,“性能模式事务表”.

events_transactions_current 表具有以下列

  • THREAD_ID, EVENT_ID

    与事件关联的线程以及事件开始时线程的当前事件号。THREAD_IDEVENT_ID 值一起唯一标识该行。没有两行具有相同的成对值。

  • END_EVENT_ID

    此列在事件开始时设置为 NULL,并在事件结束时更新为线程当前事件号。

  • EVENT_NAME

    收集事件的工具的名称。这是一个来自 setup_instruments 表的 NAME 值。如 第 29.6 节,“性能模式工具命名约定” 中所述,工具名称可能包含多个部分并形成层次结构。

  • STATE

    当前事务状态。该值为 ACTIVE(在 START TRANSACTIONBEGIN 之后),COMMITTED(在 COMMIT 之后)或 ROLLED BACK(在 ROLLBACK 之后)。

  • TRX_ID

    未使用。

  • GTID

    GTID 列包含 gtid_next 的值,它可以是 ANONYMOUSAUTOMATIC 或使用 UUID:NUMBER 格式的 GTID。对于使用 gtid_next=AUTOMATIC 的事务(所有正常的客户端事务),GTID 列会在事务提交并分配实际 GTID 时更改。如果 gtid_modeONON_PERMISSIVE,则 GTID 列将更改为事务的 GTID。如果 gtid_modeOFFOFF_PERMISSIVE,则 GTID 列将更改为 ANONYMOUS

  • XID_FORMAT_IDXID_GTRIDXID_BQUAL

    XA 事务标识符的元素。它们的格式如 第 15.3.8.1 节,“XA 事务 SQL 语句” 中所述。

  • XA_STATE

    XA 事务的状态。该值为 ACTIVE(在 XA START 之后)、IDLE(在 XA END 之后)、PREPARED(在 XA PREPARE 之后)、ROLLED BACK(在 XA ROLLBACK 之后)或 COMMITTED(在 XA COMMIT 之后)。

    在副本上,同一个 XA 事务可能在不同的线程上以不同的状态出现在 events_transactions_current 表中。这是因为在 XA 事务准备完成后,它会从副本的应用线程中分离出来,并且可以由副本上的任何线程提交或回滚。 events_transactions_current 表显示线程上最近一次监控的事务事件的当前状态,并且在线程处于空闲状态时不会更新该状态。因此,即使 XA 事务已由另一个线程处理,它仍然可能以 PREPARED 状态显示在原始应用线程的 events_transactions_current 表中。为了准确识别仍处于 PREPARED 状态并需要恢复的 XA 事务,请使用 XA RECOVER 语句,而不是 Performance Schema 事务表。

  • SOURCE

    包含生成事件的已插入代码的源文件名称以及该代码中插入点的行号。这使您能够检查源代码以确定确切涉及的代码。

  • TIMER_STARTTIMER_ENDTIMER_WAIT

    事件的计时信息。这些值的单位为皮秒(万亿分之一秒)。 TIMER_STARTTIMER_END 值指示事件计时开始和结束的时间。 TIMER_WAIT 是事件的经过时间(持续时间)。

    如果事件尚未完成,则 TIMER_END 是当前计时器值,而 TIMER_WAIT 是到目前为止的经过时间(TIMER_ENDTIMER_START)。

    如果事件是从具有 TIMED = NO 的插入点生成的,则不会收集计时信息,并且 TIMER_STARTTIMER_ENDTIMER_WAIT 全部为 NULL

    有关以皮秒为单位的事件时间以及影响时间值因素的讨论,请参见 第 29.4.1 节,“Performance Schema 事件计时”

  • ACCESS_MODE

    事务访问模式。该值为 READ WRITEREAD ONLY

  • ISOLATION_LEVEL

    事务隔离级别。该值为 REPEATABLE READREAD COMMITTEDREAD UNCOMMITTEDSERIALIZABLE

  • AUTOCOMMIT

    事务开始时是否启用了自动提交模式。

  • NUMBER_OF_SAVEPOINTSNUMBER_OF_ROLLBACK_TO_SAVEPOINTNUMBER_OF_RELEASE_SAVEPOINT

    在事务期间发出的 SAVEPOINTROLLBACK TO SAVEPOINTRELEASE SAVEPOINT 语句的数量。

  • OBJECT_INSTANCE_BEGIN

    未使用。

  • NESTING_EVENT_ID

    该事件嵌套其中的事件的 EVENT_ID 值。

  • NESTING_EVENT_TYPE

    嵌套事件类型。该值为 TRANSACTIONSTATEMENTSTAGEWAIT。(TRANSACTION 不会出现,因为事务不能嵌套。)

events_transactions_current 表具有以下索引

  • 主键为 (THREAD_IDEVENT_ID)

允许对 events_transactions_current 表使用 TRUNCATE TABLE。它会删除行。