性能架构维护语句事件汇总表,其中包含有关最小、最大和平均语句延迟的信息(参见 第 29.12.20.3 节,“语句汇总表”)。这些表允许对系统性能进行高级评估。为了允许更细粒度的评估,性能架构还为语句延迟收集直方图数据。这些直方图提供了对延迟分布的更多见解。
第 29.12.6 节,“性能架构语句事件表” 描述了语句摘要所基于的事件。请参见该讨论,了解有关语句事件内容、当前和历史语句事件表以及如何控制语句事件收集的信息,这些信息默认情况下部分被禁用。
语句直方图信息示例
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
每个语句直方图汇总表都具有一个或多个分组列,以指示表如何聚合事件
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
行构成了该架构/摘要组合的直方图。在给定直方图内,
BUCKET_NUMBER
列指示桶号。
events_statements_histogram_global
具有BUCKET_NUMBER
列。此表使用单个直方图汇总跨架构名称和摘要值的延迟。BUCKET_NUMBER
列指示此全局直方图中的桶号。
直方图包含 N
个桶,其中每一行表示一个桶,桶号由 BUCKET_NUMBER
列指示。桶号从 0 开始。
每个语句直方图汇总表都具有这些包含聚合值的汇总列
BUCKET_TIMER_LOW
、BUCKET_TIMER_HIGH
桶统计在
BUCKET_TIMER_LOW
和BUCKET_TIMER_HIGH
之间测量的延迟(以皮秒为单位)的语句。第一个桶(
BUCKET_NUMBER
= 0)的BUCKET_TIMER_LOW
值为 0。桶(
BUCKET_NUMBER
=k
)的BUCKET_TIMER_LOW
值与前一个桶(BUCKET_NUMBER
=k
−1)的BUCKET_TIMER_HIGH
相同。最后一个桶是所有延迟超过直方图中先前桶的语句的总和。
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)
,并作为便利列显示。
语句直方图摘要表具有以下索引
events_statements_histogram_by_digest
:在 (
SCHEMA_NAME
,DIGEST
,BUCKET_NUMBER
) 上的唯一索引
events_statements_histogram_global
:在 (
BUCKET_NUMBER
) 上的主键
TRUNCATE TABLE
允许用于语句直方图摘要表。截断将 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
。