MySQL 8.0 リファレンスマニュアル


27.12.18.4 ステートメントヒストグラム要約テーブル

パフォーマンススキーマは、ステートメントの最小待機時間、最大待機時間、および平均待機時間に関する情報を含むステートメントイベントのサマリーテーブルを保守します (セクション27.12.18.3「ステートメントサマリーテーブル」 を参照)。 これらのテーブルでは、システムパフォーマンスの高度な評価が可能です。 よりきめ細かいレベルでの評価を許可するために、パフォーマンススキーマはステートメントの待機時間のヒストグラムデータも収集します。 これらのヒストグラムを使用すると、待機時間分布をさらに把握できます。

セクション27.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

各ステートメントヒストグラムサマリーテーブルには、テーブルがイベントを集計する方法を示す 1 つ以上のグループ化カラムがあります:

  • events_statements_histogram_by_digest には、SCHEMA_NAMEDIGEST および BUCKET_NUMBER カラムがあります:

    • SCHEMA_NAME および DIGEST カラムは、events_statements_summary_by_digest テーブルのステートメントダイジェスト行を識別します。

    • SCHEMA_NAMEDIGEST の値が同じ 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_LOWBUCKET_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 までの間隔の待機時間で測定されたが、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 が暗黙的に切り捨てられます。


関連キーワード:  テーブル, BUCKET, パフォーマンス, スキーマ, events, TIMER, ステートメント, statements, COUNT, NUMBER