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_instrumentation
がNO
の場合、それはグローバルインストゥルメンテーションを無効にします。 ほかのすべての設定は低いレベルで、チェックされず、何が設定されているかは重要でありません。 グローバルまたはスレッドごとに情報が保守されず、個々のイベントが現在のイベントまたはイベント履歴テーブルに収集されません。global_instrumentation
がYES
の場合、パフォーマンススキーマはグローバル状態の情報を保守し、thread_instrumentation
コンシューマもチェックします。thread_instrumentation
はglobal_instrumentation
がYES
の場合のみチェックされます。 そうでなければ、thread_instrumentation
がNO
の場合、スレッド固有のインストゥルメンテーションが無効になり、すべての低レベル設定が無視されます。 スレッドごとに情報が保守されず、個々のイベントが現在のイベントまたはイベント履歴テーブルに収集されません。thread_instrumentation
がYES
の場合、パフォーマンススキーマはスレッド固有の情報を保守し、events_
コンシューマもチェックします。xxx
_current
これらのコンシューマには global_instrumentation
と thread_instrumentation
の両方が YES
である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。
events_waits_current
はNO
の場合、events_waits_current
テーブル内の個々の待機イベントの収集を無効にします。YES
の場合、待機イベント収集を有効にし、パフォーマンススキーマはevents_waits_history
およびevents_waits_history_long
コンシューマをチェックします。events_waits_history
はevent_waits_current
がNO
の場合にチェックされません。 そうでない場合、NO
またはYES
のevents_waits_history
値は、events_waits_history
テーブルへの待機イベントの収集を無効または有効にします。events_waits_history_long
はevent_waits_current
がNO
の場合にチェックされません。 そうでない場合、NO
またはYES
のevents_waits_history_long
値は、events_waits_history_long
テーブルへの待機イベントの収集を無効または有効にします。
これらのコンシューマには global_instrumentation
と thread_instrumentation
の両方が YES
である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。
events_stages_current
は、NO
の場合に、events_stages_current
テーブルへの個々のステージイベントの収集を無効にします。YES
の場合、ステージイベント収集を有効にし、パフォーマンススキーマはevents_stages_history
およびevents_stages_history_long
コンシューマをチェックします。events_stages_history
はevent_stages_current
がNO
の場合にチェックされません。 そうでない場合、NO
またはYES
のevents_stages_history
値は、events_stages_history
テーブルへのステージイベントの収集を無効または有効にします。events_stages_history_long
はevent_stages_current
がNO
の場合にチェックされません。 そうでない場合、NO
またはYES
のevents_stages_history_long
値は、events_stages_history_long
テーブルへのステージイベントの収集を無効または有効にします。
これらのコンシューマには global_instrumentation
と thread_instrumentation
の両方が YES
である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。
events_statements_current
はNO
の場合、events_statements_current
テーブルへの個々のステートメントイベントの収集を無効にします。YES
の場合、ステートメントイベント収集を有効にし、パフォーマンススキーマはevents_statements_history
およびevents_statements_history_long
コンシューマをチェックします。events_statements_history
はevents_statements_current
がNO
の場合にチェックされません。 そうでない場合、NO
またはYES
のevents_statements_history
値は、events_statements_history
テーブルへのステートメントイベントの収集を無効または有効にします。events_statements_history_long
はevents_statements_current
がNO
の場合にチェックされません。 そうでない場合、NO
またはYES
のevents_statements_history_long
値は、events_statements_history_long
テーブルへのステートメントイベントの収集を無効または有効にします。
これらのコンシューマには global_instrumentation
と thread_instrumentation
の両方が YES
である必要があり、そうでないと、それらはチェックされません。 チェックされた場合、それらは次のように動作します。
events_transactions_current
は、NO
の場合、events_transactions_current
テーブル内の個々のトランザクションイベントの収集を無効にします。YES
の場合は、トランザクションイベント収集が有効になり、パフォーマンススキーマによってevents_transactions_history
およびevents_transactions_history_long
コンシューマがチェックされます。events_transactions_current
がNO
の場合、events_transactions_history
はチェックされません。 それ以外の場合、NO
またはYES
のevents_transactions_history
値は、events_transactions_history
テーブルでのトランザクションイベントの収集を無効または有効にします。events_transactions_current
がNO
の場合、events_transactions_history_long
はチェックされません。 それ以外の場合、NO
またはYES
のevents_transactions_history_long
値は、events_transactions_history_long
テーブルでのトランザクションイベントの収集を無効または有効にします。
statements_digest
コンシューマでは、global_instrumentation
が YES
である必要があります。そうでない場合は、チェックされません。 ステートメントイベントコンシューマへの依存関係がないため、events_statements_current
に統計を収集する必要なく、ダイジェストごとに統計を取得することができ、これはオーバーヘッドの点で有利です。 逆に、ダイジェストなしで events_statements_current
の詳細なステートメントを取得できます (この場合、DIGEST
および DIGEST_TEXT
のカラムは NULL
です)。
ステートメントダイジェストの詳細については、セクション27.10「パフォーマンススキーマのステートメントダイジェストとサンプリング」を参照してください。