性能模式维护当前和最近的事务事件表,并将该信息聚合到摘要表中。第 29.12.7 节,“性能模式事务表”描述了事务摘要基于哪些事件。请参阅该讨论以获取事务事件的内容、当前和历史事务事件表,以及如何控制事务事件收集,默认情况下该功能被禁用。
示例事务事件摘要信息:
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 节,“性能模式连接表”。