Performance Schema 维护用于收集当前和最近等待事件的表,并在汇总表中聚合该信息。 第 22.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
汇总定时事件的最大等待时间。
TRUNCATE TABLE
允许等待汇总表。它具有以下效果:
对于未按帐户、主机或用户聚合的汇总表,截断会将汇总列重置为零而不是删除行。
对于按账户、主机或用户聚合的汇总表,截断会删除没有连接的账户、主机或用户的行,并将剩余行的汇总列重置为零。
此外,每个按帐户、主机、用户或线程聚合的等待汇总表都会通过截断它所依赖的连接表或截断
events_waits_summary_global_by_event_name
. 有关详细信息,请参阅
第 22.12.7 节,“性能模式连接表”。