Performance Schema 维护用于收集当前和最近阶段事件的表,并在汇总表中聚合该信息。 第 27.12.5 节,“性能模式阶段事件表”描述了阶段摘要所基于的事件。有关阶段事件的内容、当前和历史阶段事件表以及如何控制阶段事件收集(默认情况下禁用)的信息,请参阅该讨论。
示例阶段事件摘要信息:
mysql> SELECT *
FROM performance_schema.events_stages_summary_global_by_event_name\G
...
*************************** 5. row ***************************
EVENT_NAME: stage/sql/checking permissions
COUNT_STAR: 57
SUM_TIMER_WAIT: 26501888880
MIN_TIMER_WAIT: 7317456
AVG_TIMER_WAIT: 464945295
MAX_TIMER_WAIT: 12858936792
...
*************************** 9. row ***************************
EVENT_NAME: stage/sql/closing tables
COUNT_STAR: 37
SUM_TIMER_WAIT: 662606568
MIN_TIMER_WAIT: 1593864
AVG_TIMER_WAIT: 17907891
MAX_TIMER_WAIT: 437977248
...
每个阶段汇总表都有一个或多个分组列来指示该表如何聚合事件。事件名称参考
setup_instruments
表中事件工具的名称:
events_stages_summary_by_account_by_event_name
有EVENT_NAME
、USER
和HOST
列。每行汇总了给定帐户(用户和主机组合)的事件和事件名称。events_stages_summary_by_host_by_event_name
有EVENT_NAME
和HOST
列。每行总结了给定主机和事件名称的事件。events_stages_summary_by_thread_by_event_name
有THREAD_ID
和EVENT_NAME
列。每行汇总了给定线程和事件名称的事件。events_stages_summary_by_user_by_event_name
有EVENT_NAME
和USER
列。每行汇总了给定用户和事件名称的事件。events_stages_summary_global_by_event_name
有一EVENT_NAME
列。每行汇总了给定事件名称的事件。
每个阶段汇总表都有这些包含聚合值的汇总列:COUNT_STAR
、
SUM_TIMER_WAIT
、
MIN_TIMER_WAIT
、
AVG_TIMER_WAIT
和
MAX_TIMER_WAIT
。这些列类似于等待事件摘要表中的同名列(请参阅
第 27.12.20.1 节,“等待事件摘要表”),除了阶段摘要表聚合事件来自
events_stages_current
而不是
events_waits_current
。
阶段汇总表具有以下索引:
events_stages_summary_by_account_by_event_name
:USER
( ,HOST
,EVENT_NAME
) 上的主键
events_stages_summary_by_host_by_event_name
:HOST
( ,EVENT_NAME
) 上的主键
events_stages_summary_by_thread_by_event_name
:THREAD_ID
( ,EVENT_NAME
) 上的主键
events_stages_summary_by_user_by_event_name
:USER
( ,EVENT_NAME
) 上的主键
events_stages_summary_global_by_event_name
:EVENT_NAME
( ) 上的主键
TRUNCATE TABLE
允许用于阶段汇总表。它具有以下效果:
对于未按帐户、主机或用户聚合的汇总表,截断会将汇总列重置为零而不是删除行。
对于按账户、主机或用户聚合的汇总表,截断会删除没有连接的账户、主机或用户的行,并将剩余行的汇总列重置为零。
此外,每个按帐户、主机、用户或线程聚合的阶段汇总表都会通过截断它所依赖的连接表或截断
events_stages_summary_global_by_event_name
. 有关详细信息,请参阅
第 27.12.8 节,“性能模式连接表”。