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