该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_history和
events_transactions_history_long
表是最近结束的事务事件的集合,分别达到每个线程的最大行数和所有线程的全局行数。
有关三个事务事件表之间关系的更多信息,请参阅 第 25.9 节,“当前和历史事件的性能模式表”。
有关配置是否收集事务事件的信息,请参阅 第 25.12.7 节,“性能模式事务表”。
该events_transactions_current
表有以下列:
THREAD_ID,EVENT_ID与事件关联的线程和事件开始时的线程当前事件号。
THREAD_ID和EVENT_ID值一起唯一标识该行。 没有两行具有相同的一对值。END_EVENT_ID此列设置为
NULL事件开始时,并在事件结束时更新为线程当前事件编号。EVENT_NAME从中收集事件的工具的名称。这是表中的
NAME值setup_instruments。仪器名称可能有多个部分并形成一个层次结构,如 第 25.6 节“性能模式仪器命名约定”中所述。STATE当前交易状态。值为
ACTIVE(afterSTART TRANSACTIONorBEGIN)、COMMITTED(afterCOMMIT)或ROLLED BACK(afterROLLBACK)。TRX_ID没用过。
GTIDGTID 列包含 的值
gtid_next,它可以是ANONYMOUS、AUTOMATIC或使用格式的 GTID 之一UUID:NUMBER。对于使用 的事务gtid_next=AUTOMATIC,这是所有正常的客户端事务,GTID 列在事务提交和分配实际 GTID 时发生变化。如果gtid_mode是ON或ON_PERMISSIVE,则 GTID 列更改为事务的 GTID。如果gtid_mode是OFF或OFF_PERMISSIVE,则 GTID 列更改为ANONYMOUS。XID_FORMAT_ID,XID_GTRID和XID_BQUALXA 事务标识符的元素。它们具有第 13.3.7.1 节“XA 事务 SQL 语句”中描述的格式。
XA_STATEXA 事务的状态。值为
ACTIVE(afterXA START)、IDLE(afterXA END)、PREPARED(afterXA PREPARE)、ROLLED BACK(afterXA ROLLBACK) 或COMMITTED(afterXA COMMIT)。events_transactions_current在副本上,相同的 XA 事务可以在不同线程上以不同状态 出现在 表中。这是因为在准备好 XA 事务后,它立即与复制应用程序线程分离,并且可以由副本上的任何线程提交或回滚。该events_transactions_current表显示线程上最近监视的事务事件的当前状态,并且在线程空闲时不更新此状态。所以XA事务仍然可以显示在PREPARED原始应用线程的状态,在它被另一个线程处理后。要明确识别仍处于PREPARED状态且需要恢复的 XA 事务,请使用XA RECOVER语句而不是 Performance Schema 事务表。SOURCE源文件的名称,其中包含生成事件的检测代码以及检测发生的文件中的行号。这使您能够检查源代码以准确确定涉及的代码。
TIMER_START,TIMER_END,TIMER_WAIT事件的时间信息。这些值的单位是皮秒(万亿分之一秒)。和 值指示事件计时何时开始
TIMER_START和TIMER_END结束。TIMER_WAIT是事件经过的时间(持续时间)。如果事件尚未完成,
TIMER_END则为当前计时器值并且TIMER_WAIT是到目前为止经过的时间 (TIMER_END-TIMER_START)。如果事件是由具有 的仪器产生的
TIMED = NO,则不会收集计时信息,并且TIMER_START、TIMER_END和TIMER_WAIT都是NULL。有关皮秒作为事件时间单位的讨论以及影响时间值的因素,请参阅 第 25.4.1 节,“性能模式事件计时”。
ACCESS_MODE事务访问模式。值为
READ WRITE或READ ONLY。ISOLATION_LEVEL事务隔离级别。值为
REPEATABLE READ、READ COMMITTED、READ UNCOMMITTED或SERIALIZABLE。AUTOCOMMIT事务开始时是否启用了自动提交模式。
NUMBER_OF_SAVEPOINTS,NUMBER_OF_ROLLBACK_TO_SAVEPOINT,NUMBER_OF_RELEASE_SAVEPOINT交易期间发出的 、 和 报表
SAVEPOINT的ROLLBACK TO SAVEPOINT数量 。RELEASE SAVEPOINTOBJECT_INSTANCE_BEGIN没用过。
NESTING_EVENT_IDEVENT_ID嵌套此事件的事件 的值。NESTING_EVENT_TYPE嵌套事件类型。值为
TRANSACTION、STATEMENT、STAGE或WAIT。(TRANSACTION不出现是因为事务不能嵌套。)
TRUNCATE TABLE表是允许的events_transactions_current
。它删除行。