Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


MySQL 8.0 リファレンスマニュアル  /  ...  /  パフォーマンススキーマ待機イベントテーブル

このページは機械翻訳したものです。

27.12.4 パフォーマンススキーマ待機イベントテーブル

パフォーマンススキーマインストゥルメントは待機します。これは時間がかかるイベントです。 イベント階層内では、待機イベントはステージイベント内にネストされ、ステージイベントはステートメントイベント内にネストされ、ステートメントイベントはトランザクションイベント内にネストされます。

これらのテーブルは待機イベントを格納します。

  • events_waits_current: 各スレッドの現在の待機イベント。

  • events_waits_history: スレッドごとに終了した最新の待機イベント。

  • events_waits_history_long: グローバルに (すべてのスレッドで) 終了した最新の待機イベント。

次の各セクションでは、待機イベントテーブルについて説明します。 待機イベントに関する情報を集計するサマリーテーブルもあります。セクション27.12.18.1「待機イベント要約テーブル」を参照してください。

3 つの待機イベントテーブル間の関係の詳細は、セクション27.9「現在および過去のイベントのパフォーマンススキーマテーブル」 を参照してください。

待機イベント収集の構成

待機イベントを収集するかどうかを制御するには、関連するインストゥルメントおよびコンシューマの状態を設定します:

  • setup_instruments テーブルには、wait で始まる名前を持つインストゥルメントが格納されます。 これらのインストゥルメントを使用して、個々の待機イベントクラスの収集を有効または無効にします。

  • setup_consumers テーブルには、現在の待機イベントテーブル名と履歴待機イベントテーブル名に対応する名前のコンシューマ値が含まれます。 これらのコンシューマを使用して、待機イベントのコレクションをフィルタします。

待機インストゥルメントの中には、デフォルトで有効になっているものと無効になっているものがあります。 例:

Press CTRL+C to copy
mysql> SELECT NAME, ENABLED, TIMED FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/io/file/innodb%'; +-------------------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +-------------------------------------------------+---------+-------+ | wait/io/file/innodb/innodb_tablespace_open_file | YES | YES | | wait/io/file/innodb/innodb_data_file | YES | YES | | wait/io/file/innodb/innodb_log_file | YES | YES | | wait/io/file/innodb/innodb_temp_file | YES | YES | | wait/io/file/innodb/innodb_arch_file | YES | YES | | wait/io/file/innodb/innodb_clone_file | YES | YES | +-------------------------------------------------+---------+-------+ mysql> SELECT NAME, ENABLED, TIMED FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/io/socket/%'; +----------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +----------------------------------------+---------+-------+ | wait/io/socket/sql/server_tcpip_socket | NO | NO | | wait/io/socket/sql/server_unix_socket | NO | NO | | wait/io/socket/sql/client_connection | NO | NO | +----------------------------------------+---------+-------+

待機コンシューマはデフォルトで無効にされています。

Press CTRL+C to copy
mysql> SELECT * FROM performance_schema.setup_consumers WHERE NAME LIKE 'events_waits%'; +---------------------------+---------+ | NAME | ENABLED | +---------------------------+---------+ | events_waits_current | NO | | events_waits_history | NO | | events_waits_history_long | NO | +---------------------------+---------+

サーバー起動時の待機イベント収集を制御するには、my.cnf ファイルで次のような行を使用します:

  • 有効化:

    Press CTRL+C to copy
    [mysqld] performance-schema-instrument='wait/%=ON' performance-schema-consumer-events-waits-current=ON performance-schema-consumer-events-waits-history=ON performance-schema-consumer-events-waits-history-long=ON
  • 無効化:

    Press CTRL+C to copy
    [mysqld] performance-schema-instrument='wait/%=OFF' performance-schema-consumer-events-waits-current=OFF performance-schema-consumer-events-waits-history=OFF performance-schema-consumer-events-waits-history-long=OFF

実行時の待機イベント収集を制御するには、setup_instruments テーブルと setup_consumers テーブルを更新します:

  • 有効化:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME LIKE 'wait/%'; UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE 'events_waits%';
  • 無効化:

    Press CTRL+C to copy
    UPDATE performance_schema.setup_instruments SET ENABLED = 'NO', TIMED = 'NO' WHERE NAME LIKE 'wait/%'; UPDATE performance_schema.setup_consumers SET ENABLED = 'NO' WHERE NAME LIKE 'events_waits%';

特定の待機イベントのみを収集するには、対応する待機インストゥルメントのみを有効にします。 特定の待機イベントテーブルについてのみ待機イベントを収集するには、待機インストゥルメントを有効にし、目的のテーブルに対応する待機コンシューマのみを有効にします。

イベント収集の構成の詳細は、セクション27.3「パフォーマンススキーマ起動構成」 および セクション27.4「パフォーマンススキーマ実行時構成」 を参照してください。