25.12.15.4 Transaction 摘要 table
性能架构维护用于收集当前和最近事务事件的 table,并将该信息汇总到摘要 table 中。 第 25.12.7 节“性能架构事务 table”描述了事务摘要所基于的事件。请参阅该讨论,以获取有关事务事件的内容,当前和历史事务事件 table 以及如何控制事务事件收集(默认情况下已禁用)的信息。
示例 Transaction 事件摘要信息:
mysql> SELECT *
FROM performance_schema.events_transactions_summary_global_by_event_name
LIMIT 1\G
*************************** 1. row ***************************
EVENT_NAME: transaction
COUNT_STAR: 5
SUM_TIMER_WAIT: 19550092000
MIN_TIMER_WAIT: 2954148000
AVG_TIMER_WAIT: 3910018000
MAX_TIMER_WAIT: 5486275000
COUNT_READ_WRITE: 5
SUM_TIMER_READ_WRITE: 19550092000
MIN_TIMER_READ_WRITE: 2954148000
AVG_TIMER_READ_WRITE: 3910018000
MAX_TIMER_READ_WRITE: 5486275000
COUNT_READ_ONLY: 0
SUM_TIMER_READ_ONLY: 0
MIN_TIMER_READ_ONLY: 0
AVG_TIMER_READ_ONLY: 0
MAX_TIMER_READ_ONLY: 0
每个 Transaction 摘要 table 都有一个或多个分组列,以指示该 table 如何聚合事件。事件名称是指setup_instrumentstable 中事件工具的名称:
-
events_transactions_summary_by_account_by_event_name具有
USER
,HOST
和EVENT_NAME
列。每行总结了给定帐户(用户和主机组合)的事件和事件名称。 -
events_transactions_summary_by_host_by_event_name具有
HOST
和EVENT_NAME
列。每行总结了给定主机和事件名称的事件。 -
events_transactions_summary_by_thread_by_event_name具有
THREAD_ID
和EVENT_NAME
列。每行总结了给定线程和事件名称的事件。 -
events_transactions_summary_by_user_by_event_name具有
USER
和EVENT_NAME
列。每行总结了给定用户和事件名称的事件。 -
events_transactions_summary_global_by_event_name具有
EVENT_NAME
列。每行总结了给定事件名称的事件。
每个 Transaction 摘要 table 的以下摘要列均包含汇总值:
COUNT_STAR
,SUM_TIMER_WAIT
,MIN_TIMER_WAIT
,AVG_TIMER_WAIT
,MAX_TIMER_WAIT
这些列类似于 await 事件摘要 table(请参阅第 25.12.15.1 节,“await 事件摘要 table”)中具有相同名称的列,不同之处在于事务摘要 table 汇总了events_transactions_current而不是events_waits_current的事件。这些列概述了读写事务和只读事务。
COUNT_READ_WRITE
,SUM_TIMER_READ_WRITE
,MIN_TIMER_READ_WRITE
,AVG_TIMER_READ_WRITE
,MAX_TIMER_READ_WRITE
这些类似于COUNT_STAR
和xxx_TIMER_WAIT
列,但仅汇总读写事务。事务访问模式指定事务是以读/写还是只读模式操作。
COUNT_READ_ONLY
,SUM_TIMER_READ_ONLY
,MIN_TIMER_READ_ONLY
,AVG_TIMER_READ_ONLY
,MAX_TIMER_READ_ONLY
这些类似于COUNT_STAR
和xxx_TIMER_WAIT
列,但仅汇总只读事务。事务访问模式指定事务是以读/写还是只读模式操作。
Transaction 摘要 table 允许TRUNCATE TABLE。它具有以下效果:
-
对于未按帐户,主机或用户聚合的摘要 table,截断会将摘要列重置为零,而不是删除行。
-
对于按帐户,主机或用户聚合的摘要 table,截断将删除无连接的帐户,主机或用户的行,并将其余行的摘要列重置为零。
此外,由帐户,主机,用户或线程聚合的每个事务摘要 table 都将通过其所依赖的连接 table 的截断或events_transactions_summary_global_by_event_name的截断而隐式地截断。有关详细信息,请参见第 25.12.8 节“性能架构连接 table”。
Transaction 汇总规则
事务事件收集的发生与隔离级别,访问模式或自动提交模式无关。
事务事件收集发生在服务器发起的所有非中止的事务中,包括空事务。
读写事务通常比只读事务更加占用资源,因此事务摘要 table 包括用于读写事务和只读事务的单独的聚合列。
资源要求也可能随事务隔离级别而变化。但是,假设每个服务器仅使用一个隔离级别,则不提供按隔离级别的聚合。