29.12.20.4 语句摘要表
性能_schema维护语句事件摘要表,包含关于最小、最大和平均语句延迟的信息(见第29.12.20.3节,“语句摘要表”)。这些表允许对系统性能进行高级评估。为了允许在更细化的级别评估系统性能,性能_schema还收集语句延迟的histogram数据。这些histogram提供了额外的延迟分布信息。
第29.12.6节,“性能_schema语句事件表” 描述了语句摘要的基础事件。查看该讨论以获取关于语句事件的内容、当前和历史语句事件表,以及如何控制语句事件收集,这部分默认禁用。
示例语句histogram信息:
mysql> SELECT *
FROM performance_schema.events_statements_histogram_by_digest
WHERE SCHEMA_NAME = 'mydb' AND DIGEST = 'bb3f69453119b2d7b3ae40673a9d4c7c'
AND COUNT_BUCKET > 0 ORDER BY BUCKET_NUMBER\G
*************************** 1. row ***************************
SCHEMA_NAME: mydb
DIGEST: bb3f69453119b2d7b3ae40673a9d4c7c
BUCKET_NUMBER: 42
BUCKET_TIMER_LOW: 66069344
BUCKET_TIMER_HIGH: 69183097
COUNT_BUCKET: 1
COUNT_BUCKET_AND_LOWER: 1
BUCKET_QUANTILE: 0.058824
*************************** 2. row ***************************
SCHEMA_NAME: mydb
DIGEST: bb3f69453119b2d7b3ae40673a9d4c7c
BUCKET_NUMBER: 43
BUCKET_TIMER_LOW: 69183097
BUCKET_TIMER_HIGH: 72443596
COUNT_BUCKET: 1
COUNT_BUCKET_AND_LOWER: 2
BUCKET_QUANTILE: 0.117647
*************************** 3. row ***************************
SCHEMA_NAME: mydb
DIGEST: bb3f69453119b2d7b3ae40673a9d4c7c
BUCKET_NUMBER: 44
BUCKET_TIMER_LOW: 72443596
BUCKET_TIMER_HIGH: 75857757
COUNT_BUCKET: 2
COUNT_BUCKET_AND_LOWER: 4
BUCKET_QUANTILE: 0.235294
*************************** 4. row ***************************
SCHEMA_NAME: mydb
DIGEST: bb3f69453119b2d7b3ae40673a9d4c7c
BUCKET_NUMBER: 45
BUCKET_TIMER_LOW: 75857757
BUCKET_TIMER_HIGH: 79432823
COUNT_BUCKET: 6
COUNT_BUCKET_AND_LOWER: 10
BUCKET_QUANTILE: 0.625000
...
例如,在行3中,这些值表明23.52%的查询在75.86微秒以下运行:
BUCKET_TIMER_HIGH: 75857757
BUCKET_QUANTILE: 0.235294
在行4中,这些值表明62.50%的查询在79.44微秒以下运行:
BUCKET_TIMER_HIGH: 79432823
BUCKET_QUANTILE: 0.625000
每个语句histogram摘要表都有一个或多个分组列,以指示如何将事件聚合:
-
events_statements_histogram_by_digest 有
SCHEMA_NAME
、DIGEST
和BUCKET_NUMBER
列:-
SCHEMA_NAME和DIGEST列标识
events_statements_summary_by_digest
表中的语句摘要行。 -
具有相同SCHEMA_NAME和DIGEST值的
events_statements_histogram_by_digest
行组成该schema/digest组合的histogram。 -
在给定的histogram中,BUCKET_NUMBER列表示bucket号。
-
-
events_statements_histogram_global
有一个BUCKET_NUMBER列。这张表对全球schema name和digest值进行了摘要,使用单个histogram。BUCKET_NUMBER列表示该全球histogram中的bucket号。
一个histogram由N
个bucket组成,每个行表示一个bucket,BUCKET_NUMBER列表示bucket号。bucket号从0开始。
每个语句histogram摘要表都有这些汇总列,包含聚合值:
-
BUCKET_TIMER_LOW
、BUCKET_TIMER_HIGH
一个桶计数语句的延迟,单位为.picoseconds,测量范围在
BUCKET_TIMER_LOW
和BUCKET_TIMER_HIGH
之间:-
第一个桶(
BUCKET_NUMBER
= 0)的BUCKET_TIMER_LOW
值为0。 -
第
k
个桶的BUCKET_TIMER_LOW
值等于前一个桶(BUCKET_NUMBER
=k
-1)的BUCKET_TIMER_HIGH
值。 -
最后一个桶是对语句延迟超过前面桶的histogram的catchall。
-
-
COUNT_BUCKET
在
BUCKET_TIMER_LOW
到BUCKET_TIMER_HIGH
之间测量的语句数量。 -
COUNT_BUCKET_AND_LOWER
在0到
BUCKET_TIMER_HIGH
之间测量的语句数量。 -
BUCKET_QUANTILE
语句落入这个或更低的桶的比例。这比例对应于定义的
COUNT_BUCKET_AND_LOWER / SUM(COUNT_BUCKET)
,并作为一个便捷列显示。
语句histogram总结表有这些索引:
-
events_statements_histogram_by_digest
:-
唯一索引(
SCHEMA_NAME
,DIGEST
,BUCKET_NUMBER
)
-
-
events_statements_histogram_global
:-
主键(
BUCKET_NUMBER
)
-
TRUNCATE TABLE
允许对语句histogram总结表进行截断。截断将COUNT_BUCKET
和COUNT_BUCKET_AND_LOWER
列设置为0。
此外,截断events_statements_summary_by_digest
隐式截断events_statements_histogram_by_digest
,截断events_statements_summary_global_by_event_name
隐式截断events_statements_histogram_global
。