events_transactions_current表
该events_transactions_current
表包含当前交易事件。该表为每个线程存储一行,以显示该线程最近监视的事务事件的当前状态,因此没有用于配置表大小的系统变量。例如:
mysql>SELECT *FROM performance_schema.events_transactions_currentLIMIT 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
表是已结束的最近事务事件的集合,每个线程最多可以有最大的行数,而在所有线程上可以是全局的。
有关三个事务事件表之间的关系的更多信息,请参见“当前事件和历史事件的性能架构表”。
有关配置是否收集事务事件的信息,请参见“性能架构事务表”。
该events_transactions_current
表包含以下列:
THREAD_ID
,EVENT_ID
与事件关联的线程以及事件开始时的线程当前事件号。在
THREAD_ID
和EVENT_ID
一起值唯一标识行。没有两行具有相同的一对值。END_EVENT_ID
此列设置为
NULL
事件开始时的时间,并在事件结束时更新为线程的当前事件号。EVENT_NAME
收集事件的仪器的名称。这是表中的
NAME
值setup_instruments
。仪器名称可能具有多个部分,并形成一个层次结构,如“性能模式仪器命名约定”中所述。STATE
当前交易状态。值是
ACTIVE
(之后START TRANSACTION
或BEGIN
),COMMITTED
(之后COMMIT
)或ROLLED BACK
(之后ROLLBACK
)。TRX_ID
没用过。
GTID
所述GTID列包含的值
gtid_next
,其可以是一个ANONYMOUS
,AUTOMATIC
或使用的格式的GTIDUUID: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交易标识符的组成部分。它们具有“ XA事务SQL语句”中所述的格式。
XA_STATE
XA事务的状态。值为
ACTIVE
(afterXA START
),IDLE
(afterXA END
),PREPARED
(afterXA PREPARE
),ROLLED BACK
(afterXA ROLLBACK
)或COMMITTED
(afterXA COMMIT
)。在复制从属服务器上,同一XA事务可以在
events_transactions_current
表中出现,并且在不同线程上的状态不同。这是因为在准备好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
。有关以皮秒为单位的事件时间和影响时间值的因素的讨论,请参见“性能模式事件时序”。
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
表格。它删除行。