• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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表是已结束的最近事务事件的集合,每个线程最多可以有最大的行数,而在所有线程上可以是全局的。

    有关三个事务事件表之间的关系的更多信息,请参见“当前事件和历史事件的性能架构表”。

    有关配置是否收集事务事件的信息,请参见“性能架构事务表”。

    events_transactions_current表包含以下列:

    • THREAD_IDEVENT_ID

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

    • END_EVENT_ID

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

    • EVENT_NAME

      收集事件的仪器的名称。这是表中的NAMEsetup_instruments。仪器名称可能具有多个部分,并形成一个层次结构,如“性能模式仪器命名约定”中所述。

    • STATE

      当前交易状态。值是ACTIVE(之后START TRANSACTIONBEGIN),COMMITTED(之后COMMIT)或ROLLED BACK(之后ROLLBACK)。

    • TRX_ID

      没用过。

    • GTID

      所述GTID列包含的值gtid_next,其可以是一个ANONYMOUSAUTOMATIC或使用的格式的GTID UUID:NUMBER。对于使用的事务gtid_next=AUTOMATIC(这是所有普通的客户事务),当事务提交并分配了实际的GTID时,GTID列会更改。如果gtid_modeONON_PERMISSIVE,则GTID列将更改为事务的GTID。如果gtid_modeOFFOFF_PERMISSIVE,则GTID列更改为ANONYMOUS

    • XID_FORMAT_IDXID_GTRIDXID_BQUAL

      XA交易标识符的组成部分。它们具有“ XA事务SQL语句”中所述的格式。

    • XA_STATE

      XA事务的状态。值为ACTIVE(after XA START),IDLE(after XA END),PREPARED(after XA PREPARE),ROLLED BACK(after XA ROLLBACK)或COMMITTED(after 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_END-TIMER_START)。

      如果事件是从具有产生仪器TIMED = NO,定时信息不是收集,并且TIMER_STARTTIMER_END以及TIMER_WAIT是所有NULL

      有关以皮秒为单位的事件时间和影响时间值的因素的讨论,请参见“性能模式事件时序”。

    • ACCESS_MODE

      事务访问方式。值为READ WRITEREAD ONLY

    • ISOLATION_LEVEL

      事务隔离级别。值是REPEATABLE READREAD COMMITTEDREAD UNCOMMITTED,或SERIALIZABLE

    • AUTOCOMMIT

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

    • NUMBER_OF_SAVEPOINTSNUMBER_OF_ROLLBACK_TO_SAVEPOINTNUMBER_OF_RELEASE_SAVEPOINT

      的数量SAVEPOINTROLLBACK TO SAVEPOINT以及RELEASE SAVEPOINT在交易期间发表的声明。

    • OBJECT_INSTANCE_BEGIN

      没用过。

    • NESTING_EVENT_ID

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

    • NESTING_EVENT_TYPE

      嵌套事件类型。值是TRANSACTIONSTATEMENTSTAGE,或WAIT。(TRANSACTION由于事务无法嵌套,因此不会出现。)

    events_transactions_current表具有以下索引:

    • THREAD_IDEVENT_ID)上的主键

    TRUNCATE TABLE允许用于events_transactions_current表格。它删除行。