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


27.4.7 コンシューマによる事前フィルタリング

setup_consumers テーブルは使用可能なコンシューマの種類とどれが有効にされているかを一覧表示します。

mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME                             | ENABLED |
+----------------------------------+---------+
| events_stages_current            | NO      |
| events_stages_history            | NO      |
| events_stages_history_long       | NO      |
| events_statements_current        | YES     |
| events_statements_history        | YES     |
| events_statements_history_long   | NO      |
| events_transactions_current      | YES     |
| events_transactions_history      | YES     |
| events_transactions_history_long | NO      |
| events_waits_current             | NO      |
| events_waits_history             | NO      |
| events_waits_history_long        | NO      |
| global_instrumentation           | YES     |
| thread_instrumentation           | YES     |
| statements_digest                | YES     |
+----------------------------------+---------+

コンシューマステージで、事前フィルタリングに影響するように、setup_consumers テーブルを変更し、イベントの送信先を決定します。 コンシューマを有効または無効にするには、その ENABLED 値を YES または NO に設定します。

setup_consumers テーブルへの変更はただちにモニタリングに影響します。

コンシューマを無効にすると、サーバーはそのコンシューマの宛先の保守に時間を費やさなくなります。 たとえば、履歴イベント情報に関心がない場合、履歴コンシューマを無効にします。

UPDATE performance_schema.setup_consumers
SET ENABLED = 'NO'
WHERE NAME LIKE '%history%';

setup_consumers テーブル内のコンシューマ設定は、高いレベルから低いレベルまでの階層を形成します。 次の原則が当てはまります。

  • パフォーマンススキーマがコンシューマをチェックし、コンシューマが有効にされていないかぎり、コンシューマに関連付けられている宛先はイベントを受信しません。

  • コンシューマは、それが依存するすべてのコンシューマ (ある場合) が有効にされている場合にのみチェックされます。

  • コンシューマがチェックされていない場合、またはチェックされているが無効にされている場合、それに依存するほかのコンシューマはチェックされません。

  • 依存コンシューマには独自の依存コンシューマがあることがあります。

  • イベントがどの宛先にも送信されない場合、パフォーマンススキーマはそれを生成しません。

次のリストに、使用可能なコンシューマ値を説明します。 いくつかの代表的なコンシューマ構成とそれらのインストゥルメンテーションへの効果については、セクション27.4.8「コンシューマ構成の例」を参照してください。

グローバルおよびスレッドコンシューマ

  • global_instrumentation は最高レベルのコンシューマです。 global_instrumentationNO の場合、それはグローバルインストゥルメンテーションを無効にします。 ほかのすべての設定は低いレベルで、チェックされず、何が設定されているかは重要でありません。 グローバルまたはスレッドごとに情報が保守されず、個々のイベントが現在のイベントまたはイベント履歴テーブルに収集されません。 global_instrumentationYES の場合、パフォーマンススキーマはグローバル状態の情報を保守し、thread_instrumentation コンシューマもチェックします。

  • thread_instrumentationglobal_instrumentationYES の場合のみチェックされます。 そうでなければ、thread_instrumentationNO の場合、スレッド固有のインストゥルメンテーションが無効になり、すべての低レベル設定が無視されます。 スレッドごとに情報が保守されず、個々のイベントが現在のイベントまたはイベント履歴テーブルに収集されません。 thread_instrumentationYES の場合、パフォーマンススキーマはスレッド固有の情報を保守し、events_xxx_current コンシューマもチェックします。

待機イベントコンシューマ

これらのコンシューマには global_instrumentationthread_instrumentation の両方が YES である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。

  • events_waits_currentNO の場合、events_waits_current テーブル内の個々の待機イベントの収集を無効にします。 YES の場合、待機イベント収集を有効にし、パフォーマンススキーマは events_waits_history および events_waits_history_long コンシューマをチェックします。

  • events_waits_historyevent_waits_currentNO の場合にチェックされません。 そうでない場合、NO または YESevents_waits_history 値は、events_waits_history テーブルへの待機イベントの収集を無効または有効にします。

  • events_waits_history_longevent_waits_currentNO の場合にチェックされません。 そうでない場合、NO または YESevents_waits_history_long 値は、events_waits_history_long テーブルへの待機イベントの収集を無効または有効にします。

ステージイベントコンシューマ

これらのコンシューマには global_instrumentationthread_instrumentation の両方が YES である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。

  • events_stages_currentは、NO の場合に、events_stages_current テーブルへの個々のステージイベントの収集を無効にします。 YES の場合、ステージイベント収集を有効にし、パフォーマンススキーマは events_stages_history および events_stages_history_long コンシューマをチェックします。

  • events_stages_historyevent_stages_currentNO の場合にチェックされません。 そうでない場合、NO または YESevents_stages_history 値は、events_stages_history テーブルへのステージイベントの収集を無効または有効にします。

  • events_stages_history_longevent_stages_currentNO の場合にチェックされません。 そうでない場合、NO または YESevents_stages_history_long 値は、events_stages_history_long テーブルへのステージイベントの収集を無効または有効にします。

ステートメントイベントコンシューマ

これらのコンシューマには global_instrumentationthread_instrumentation の両方が YES である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。

  • events_statements_currentNO の場合、events_statements_current テーブルへの個々のステートメントイベントの収集を無効にします。 YES の場合、ステートメントイベント収集を有効にし、パフォーマンススキーマは events_statements_history および events_statements_history_long コンシューマをチェックします。

  • events_statements_historyevents_statements_currentNO の場合にチェックされません。 そうでない場合、NO または YESevents_statements_history 値は、events_statements_history テーブルへのステートメントイベントの収集を無効または有効にします。

  • events_statements_history_longevents_statements_currentNO の場合にチェックされません。 そうでない場合、NO または YESevents_statements_history_long 値は、events_statements_history_long テーブルへのステートメントイベントの収集を無効または有効にします。

トランザクションイベントコンシューマ

これらのコンシューマには global_instrumentationthread_instrumentation の両方が YES である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。

  • events_transactions_current は、NO の場合、events_transactions_current テーブル内の個々のトランザクションイベントの収集を無効にします。 YES の場合は、トランザクションイベント収集が有効になり、パフォーマンススキーマによって events_transactions_history および events_transactions_history_long コンシューマがチェックされます。

  • events_transactions_currentNO の場合、events_transactions_history はチェックされません。 それ以外の場合、NO または YESevents_transactions_history 値は、events_transactions_history テーブルでのトランザクションイベントの収集を無効または有効にします。

  • events_transactions_currentNO の場合、events_transactions_history_long はチェックされません。 それ以外の場合、NO または YESevents_transactions_history_long 値は、events_transactions_history_long テーブルでのトランザクションイベントの収集を無効または有効にします。

ステートメントダイジェストコンシューマ

statements_digest コンシューマでは、global_instrumentationYES である必要があります。そうでない場合は、チェックされません。 ステートメントイベントコンシューマへの依存関係がないため、events_statements_current に統計を収集する必要なく、ダイジェストごとに統計を取得することができ、これはオーバーヘッドの点で有利です。 逆に、ダイジェストなしで events_statements_current の詳細なステートメントを取得できます (この場合、DIGEST および DIGEST_TEXT のカラムは NULL です)。

ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。


関連キーワード:  テーブル, events, history, コンシューマ, パフォーマンス, スキーマ, NO, チェック, イベント, long