29.12.20.1 等待事件摘要表
性能Schema维护当前和最近的等待事件表,并将该信息聚合到摘要表中。第29.12.4节,“性能Schema等待事件表” 描述了等待摘要的基础事件。请查看该讨论,以了解等待事件的内容、当前和最近的等待事件表,以及如何控制等待事件收集,该功能默认禁用。
示例等待事件摘要信息:
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_WAIT -
MIN_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节,“性能架构连接表”。