效能架構維護陳述式事件摘要表格,其中包含關於最小、最大和平均陳述式延遲的資訊(請參閱章節 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
。