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


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节,“Performance Schema Tables for Current and Historical Events”

关于是否收集事务事件的配置信息,请见 第29.12.7节,“Performance Schema Transaction Tables”

events_transactions_current 表具有以下列:

  • THREAD_ID, EVENT_ID

    与事件关联的线程和线程当前事件号,当事件开始时。THREAD_IDEVENT_ID 值组成唯一标识符,两个值组合起来不能重复。

  • END_EVENT_ID

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

  • EVENT_NAME

    事件的名称。该名称来自 setup_instruments 表的 NAME 值。仪器名称可能具有多个部分,形成层次结构,如 第29.6节,“Performance Schema Instrument Naming Conventions” 中所讨论的那样。

  • 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 Transaction SQL Statements”中描述。

  • XA_STATE

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

    在复制服务器上,同一个XA事务可能在不同的线程中以不同的状态出现。这是因为在XA事务准备好后,它会立即从复制服务器的applier线程中分离出来,可以由任何线程在复制服务器上提交或回滚。events_transactions_current表显示当前线程的最新监控事务事件的状态,并且在线程空闲时不会更新这个状态。因此,XA事务可能仍然在原始applier线程上显示为PREPARED状态,即使它已经被其他线程处理过。为了确定仍然在PREPARED状态的XA事务需要恢复,使用XA RECOVER语句,而不是性能Schema事务表。

  • SOURCE

    事件产生的代码文件的名称和在文件中的行号,这样可以让您检查源代码以确定涉及的代码。

  • TIMER_START, TIMER_END, TIMER_WAIT

    事件的计时信息。这些值的单位是-pic秒( trillionths of a second)。TIMER_STARTTIMER_END值表示事件计时的开始和结束。TIMER_WAIT是事件的延迟时间(duration)。

    如果事件还没有完成,TIMER_END是当前计时值,TIMER_WAIT是到目前为止的时间(TIMER_END - TIMER_START)。

    如果事件来自于一个没有TIMED = NO的instrument,那么计时信息就不会收集,TIMER_STARTTIMER_ENDTIMER_WAIT都是NULL

    关于-pic秒作为事件时间的单位和影响时间值的因素的讨论,请见Section 29.4.1, “Performance Schema Event Timing”

  • ACCESS_MODE

    事务访问模式。值是READ WRITEREAD ONLY

  • ISOLATION_LEVEL

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

  • AUTOCOMMIT

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

  • NUMBER_OF_SAVEPOINTS, NUMBER_OF_ROLLBACK_TO_SAVEPOINT, NUMBER_OF_RELEASE_SAVEPOINT

    事务中执行的SAVEPOINT, ROLLBACK TO SAVEPOINT, 和RELEASE SAVEPOINT语句的数量。

  • OBJECT_INSTANCE_BEGIN

    未使用。

  • NESTING_EVENT_ID

    事件的事件ID,位于该事件的嵌套事件ID中。

  • NESTING_EVENT_TYPE

    嵌套事件类型。该值是TRANSACTION, STATEMENT, STAGE, 或WAIT。(TRANSACTION不出现,因为事务不能嵌套。)

events_transactions_current具有以下索引:

  • 主键索引(THREAD_ID, EVENT_ID)

TRUNCATE TABLE允许在events_transactions_current表上执行,删除所有行。