29.12.20.5 交易摘要表
性能 Schema 维护了用于收集当前和最近事务事件的表,并将这些信息聚合到摘要表中。 第29.12.7节,“性能 Schema 交易表” 描述了事务摘要的基础事件。查看该讨论以获取关于事务事件的内容、当前和历史事务事件表,以及如何控制事务事件收集的信息,该功能默认禁用。
示例事务事件摘要信息:
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
每个事务摘要表都有一个或多个分组列,以指示如何聚合事件。事件名称引用了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
这些列与等待事件摘要表中的同名列类似(见第29.12.20.1节,“等待事件摘要表”),但从
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
的截断。详细信息,请见第29.12.8节,“Performance Schema Connection Tables”。
交易事件收集不考虑隔离级别、访问模式或自动提交模式。
交易事件收集将对所有未中止的服务器启动的交易进行收集,包括空交易。
读写事务通常比只读事务更耗资源,因此交易摘要表包括读写和只读事务的分离聚合列。
事务资源需求可能会因事务隔离级别而异。然而,假设每个服务器只使用一个隔离级别,因此不提供按隔离级别聚合。