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


MySQL 8.4 参考手册  /  ...  /  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 状态下显示在原始应用程序线程中,即使它已由另一个线程处理。要正确定位仍然处于 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。它将删除行。