性能模式维护表,用于收集当前和最近的等待事件,并汇总这些信息到汇总表中。 第 29.12.4 节,“性能模式等待事件表” 描述了等待汇总基于的事件。请参阅该讨论以了解等待事件的内容、当前和最近的等待事件表,以及如何控制等待事件收集,默认情况下禁用此功能。
示例等待事件汇总信息
mysql> SELECT *
FROM performance_schema.events_waits_summary_global_by_event_name\G
...
*************************** 6. row ***************************
EVENT_NAME: wait/synch/mutex/sql/BINARY_LOG::LOCK_index
COUNT_STAR: 8
SUM_TIMER_WAIT: 2119302
MIN_TIMER_WAIT: 196092
AVG_TIMER_WAIT: 264912
MAX_TIMER_WAIT: 569421
...
*************************** 9. row ***************************
EVENT_NAME: wait/synch/mutex/sql/hash_filo::lock
COUNT_STAR: 69
SUM_TIMER_WAIT: 16848828
MIN_TIMER_WAIT: 0
AVG_TIMER_WAIT: 244185
MAX_TIMER_WAIT: 735345
...
每个等待事件汇总表都有一个或多个分组列,以指示表如何汇总事件。事件名称是指 setup_instruments
表中的事件工具的名称
events_waits_summary_by_account_by_event_name
包含EVENT_NAME
、USER
和HOST
列。每行汇总给定帐户(用户和主机组合)和事件名称的事件。events_waits_summary_by_host_by_event_name
包含EVENT_NAME
和HOST
列。每行汇总给定主机和事件名称的事件。events_waits_summary_by_instance
包含EVENT_NAME
和OBJECT_INSTANCE_BEGIN
列。每行汇总给定事件名称和对象的事件。如果工具用于创建多个实例,则每个实例都有一个唯一的OBJECT_INSTANCE_BEGIN
值,并在该表中单独汇总。events_waits_summary_by_thread_by_event_name
包含THREAD_ID
和EVENT_NAME
列。每行汇总给定线程和事件名称的事件。events_waits_summary_by_user_by_event_name
包含EVENT_NAME
和USER
列。每行汇总给定用户和事件名称的事件。events_waits_summary_global_by_event_name
包含EVENT_NAME
列。每行汇总给定事件名称的事件。工具可能用于创建所检测对象的多个实例。例如,如果存在用于互斥锁的工具,该工具是为每个连接创建的,则存在与连接数量一样多的实例。工具的汇总行汇总所有这些实例。
每个等待事件汇总表都有这些汇总列,其中包含汇总值
COUNT_STAR
汇总事件的数量。此值包括所有事件,无论是有计时还是无计时。
SUM_TIMER_WAIT
汇总计时事件的总等待时间。此值仅针对计时事件计算,因为无计时事件的等待时间为
NULL
。对于其他
值也是如此。xxx
_TIMER_WAITMIN_TIMER_WAIT
汇总计时事件的最小等待时间。
AVG_TIMER_WAIT
汇总计时事件的平均等待时间。
MAX_TIMER_WAIT
汇总计时事件的最大等待时间。
等待事件汇总表有这些索引
events_waits_summary_by_account_by_event_name
:主键为 (
USER
,HOST
,EVENT_NAME
)
events_waits_summary_by_host_by_event_name
:主键为 (
HOST
,EVENT_NAME
)
events_waits_summary_by_instance
:主键为 (
OBJECT_INSTANCE_BEGIN
)索引为 (
EVENT_NAME
)
events_waits_summary_by_thread_by_event_name
:主键为 (
THREAD_ID
,EVENT_NAME
)
events_waits_summary_by_user_by_event_name
:主键为 (
USER
,EVENT_NAME
)
events_waits_summary_global_by_event_name
:主键为 (
EVENT_NAME
)
TRUNCATE TABLE
允许用于等待摘要表。它有以下影响
对于没有按帐户、主机或用户聚合的摘要表,截断将摘要列重置为零,而不是删除行。
对于按帐户、主机或用户聚合的摘要表,截断将删除没有连接的帐户、主机或用户的行,并将剩余行的摘要列重置为零。
此外,每个按帐户、主机、用户或线程聚合的等待摘要表都将通过截断它依赖的连接表或截断 events_waits_summary_global_by_event_name
来隐式截断。有关详细信息,请参见 第 29.12.8 节,“Performance Schema 连接表”。