该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
表是最近结束的事务事件的集合,分别达到每个线程的最大行数和所有线程的全局行数。
有关三个事务事件表之间关系的更多信息,请参阅 第 27.9 节,“当前和历史事件的性能模式表”。
有关配置是否收集事务事件的信息,请参阅 第 27.12.7 节,“性能模式事务表”。
该events_transactions_current
表有以下列:
THREAD_ID
,EVENT_ID
与事件关联的线程和事件开始时的线程当前事件号。
THREAD_ID
和EVENT_ID
值一起唯一标识该行。 没有两行具有相同的一对值。END_EVENT_ID
此列设置为
NULL
事件开始时,并在事件结束时更新为线程当前事件编号。EVENT_NAME
从中收集事件的工具的名称。这是表中的
NAME
值setup_instruments
。仪器名称可能有多个部分并形成一个层次结构,如 第 27.6 节“性能模式仪器命名约定”中所述。STATE
当前交易状态。值为
ACTIVE
(afterSTART TRANSACTION
orBEGIN
)、COMMITTED
(afterCOMMIT
)或ROLLED BACK
(afterROLLBACK
)。TRX_ID
没用过。
GTID
GTID 列包含 的值
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_BQUAL
XA 事务标识符的元素。它们具有第 13.3.8.1 节“XA 事务 SQL 语句”中描述的格式。
XA_STATE
XA 事务的状态。值为
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
。有关皮秒作为事件时间单位的讨论以及影响时间值的因素,请参阅 第 27.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 SAVEPOINT
OBJECT_INSTANCE_BEGIN
没用过。
NESTING_EVENT_ID
EVENT_ID
嵌套此事件的事件 的值。NESTING_EVENT_TYPE
嵌套事件类型。值为
TRANSACTION
、STATEMENT
、STAGE
或WAIT
。(TRANSACTION
不出现是因为事务不能嵌套。)
该events_transactions_current
表具有以下索引:
THREAD_ID
( ,EVENT_ID
) 上的主键
TRUNCATE TABLE
表是允许的events_transactions_current
。它删除行。