交易摘要表
性能架构维护用于收集当前和最近事务事件的表,并将该信息汇总到摘要表中。“性能架构事务表”描述了事务摘要所基于的事件。请参阅该讨论以获取有关事务事件的内容,当前和历史事务事件表以及如何控制事务事件收集(默认情况下已禁用)的信息。
示例交易事件摘要信息:
mysql>SELECT *FROM performance_schema.events_transactions_summary_global_by_event_nameLIMIT 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
每个交易摘要表都有一个或多个分组列,以指示该表如何聚合事件。事件名称是指setup_instruments
表中事件工具的名称:
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
专栏。每行总结了给定事件名称的事件。
每个交易摘要表的以下摘要列均包含汇总值:
COUNT_STAR
,SUM_TIMER_WAIT
,MIN_TIMER_WAIT
,AVG_TIMER_WAIT
,MAX_TIMER_WAIT
这些列类似于等待事件摘要表中的相同名称的列(请参见“等待事件摘要表”),不同之处在于事务摘要表汇总了
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
列相似,但仅汇总只读事务。事务访问模式指定事务是以读/写还是只读模式运行。
事务摘要表具有以下索引:
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
)上的主键
- (
TRUNCATE TABLE
允许用于交易摘要表。它具有以下效果:
- 对于未按帐户,主机或用户聚合的摘要表,截断会将摘要列重置为零,而不是删除行。
- 对于按帐户,主机或用户聚合的摘要表,截断将删除无连接的帐户,主机或用户的行,并将其余行的摘要列重置为零。
另外,通过帐户,主机,用户或线程聚合的每个事务摘要表都将通过其所依赖的连接表的截断或的截断而隐式地截断events_transactions_summary_global_by_event_name
。有关详细信息,请参见“性能架构连接表”。
交易汇总规则
事务事件收集的发生与隔离级别,访问模式或自动提交模式无关。
事务事件收集发生在服务器发起的所有非中止的事务中,包括空事务。
读写事务通常比只读事务更加占用资源,因此事务摘要表包括用于读写事务和只读事务的单独的聚合列。
资源需求也可能随事务隔离级别而变化。但是,假设每个服务器仅使用一个隔离级别,则不提供按隔离级别的聚合。