setup_consumers
テーブル内のコンシューマ設定は、高いレベルから低いレベルまでの階層を形成します。 次の説明では、コンシューマのしくみを説明し、コンシューマ設定が高から低に段階に有効にされたときの特定の構成とそれらの効果を示します。 示されているコンシューマ値は代表的なものです。 ここで説明する一般原則は、使用可能なほかのコンシューマ値に当てはまります。
構成の説明は、機能とオーバーヘッドが増加する順番で示しています。 下位レベルの設定を有効にすることで提供される情報が必要ない場合は、パフォーマンススキーマが実行するコードが少なくなり、サイフトスルーする情報が少なくなるように無効にします。
setup_consumers
テーブルには次の値の階層が格納されます。
global_instrumentation
thread_instrumentation
events_waits_current
events_waits_history
events_waits_history_long
events_stages_current
events_stages_history
events_stages_history_long
events_statements_current
events_statements_history
events_statements_history_long
events_transactions_current
events_transactions_history
events_transactions_history_long
statements_digest
コンシューマ階層では、待機、ステージ、ステートメントおよびトランザクションのコンシューマはすべて同じレベルにあります。 これは、待機イベントがステージイベント内にネストするイベントネスト階層とは異なります。ステージイベントはステートメントイベント内にネストされ、ステートメントイベントはトランザクションイベント内にネストされます。
特定のコンシューマ設定が NO
の場合、パフォーマンススキーマはコンシューマに関連付けられたインストゥルメンテーションを無効にし、すべての低レベルの設定を無視します。 特定の設定が YES
の場合、パフォーマンススキーマはそれに関連付けられたインストゥルメンテーションを有効にし、次の最低レベルの設定をチェックします。 各コンシューマのルールの説明については、セクション27.4.7「コンシューマによる事前フィルタリング」を参照してください。
たとえば、global_instrumentation
が有効にされている場合、thread_instrumentation
がチェックされます。 thread_instrumentation
が有効にされている場合、events_
コンシューマがチェックされます。 これらのうち xxx
_currentevents_waits_current
が有効にされている場合、events_waits_history
および events_waits_history_long
がチェックされます。
次の構成の各説明は、パフォーマンススキーマがチェックするセットアップ要素と、それが保守する出力テーブル (つまり、それが情報を収集するテーブル) を示します。
サーバー構成の状態:
mysql> SELECT * FROM performance_schema.setup_consumers;
+---------------------------+---------+
| NAME | ENABLED |
+---------------------------+---------+
| global_instrumentation | NO |
...
+---------------------------+---------+
この構成では、何もインストゥルメントされません。
チェックされるセットアップ要素:
テーブル
setup_consumers
、コンシューマglobal_instrumentation
保守される出力テーブル:
なし
サーバー構成の状態:
mysql> SELECT * FROM performance_schema.setup_consumers;
+---------------------------+---------+
| NAME | ENABLED |
+---------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | NO |
...
+---------------------------+---------+
この構成では、インストゥルメンテーションがグローバル状態に対してのみ保守されます。 スレッドごとのインストゥルメンテーションは無効にされます。
先述の構成に関連して、チェックされる追加のセットアップ要素:
テーブル
setup_consumers
、コンシューマthread_instrumentation
テーブル
setup_instruments
テーブル
setup_objects
先述の構成に関連して保守される追加の出力テーブル:
mutex_instances
rwlock_instances
cond_instances
file_instances
users
hosts
accounts
socket_summary_by_event_name
file_summary_by_instance
file_summary_by_event_name
objects_summary_global_by_type
memory_summary_global_by_event_name
table_lock_waits_summary_by_table
table_io_waits_summary_by_index_usage
table_io_waits_summary_by_table
events_waits_summary_by_instance
events_waits_summary_global_by_event_name
events_stages_summary_global_by_event_name
events_statements_summary_global_by_event_name
events_transactions_summary_global_by_event_name
サーバー構成の状態:
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | NO |
...
| events_stages_current | NO |
...
| events_statements_current | NO |
...
| events_transactions_current | NO |
...
+----------------------------------+---------+
この構成では、インストゥルメンテーションがグローバルおよびスレッドごとに保守されます。 現在のイベントまたはイベント履歴テーブルで、個々のイベントは収集されません。
先述の構成に関連して、チェックされる追加のセットアップ要素:
xxx
がwaits
,stages
,statements
,transactions
であるテーブルsetup_consumers
、コンシューマevents_
xxx
_currentテーブル
setup_actors
カラム
threads.instrumented
先述の構成に関連して保守される追加の出力テーブル:
events_
(xxx
_summary_by_yyy
_by_event_namexxx
はwaits
,stages
,statements
,transactions
、yyy
はthread
,user
,host
,account
)
サーバー構成の状態:
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | NO |
| events_waits_history_long | NO |
| events_stages_current | YES |
| events_stages_history | NO |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | NO |
| events_transactions_current | YES |
| events_transactions_history | NO |
| events_transactions_history_long | NO |
...
+----------------------------------+---------+
この構成では、インストゥルメンテーションがグローバルおよびスレッドごとに保守されます。 個々のイベントが現在のイベントテーブルに収集されますが、イベント履歴テーブルには収集されません。
先述の構成に関連して、チェックされる追加のセットアップ要素:
コンシューマ
events_
(xxx
_historyxxx
はwaits
,stages
,statements
,transactions
)コンシューマ
events_
(xxx
_history_longxxx
はwaits
,stages
,statements
,transactions
)
先述の構成に関連して保守される追加の出力テーブル:
events_
(xxx
_currentxxx
はwaits
,stages
,statements
,transactions
)
events_
および xxx
_historyevents_
コンシューマは無効にされているため、先述の構成はイベント履歴を収集しません。 それらのコンシューマは個別またはまとめて有効にして、スレッドごと、グローバルに、またはその両方でイベント履歴を収集できます。
xxx
_history_long
この構成はスレッドごとにイベントを収集しますが、グローバルには収集しません。
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | YES |
| events_waits_history_long | NO |
| events_stages_current | YES |
| events_stages_history | YES |
| 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_
(xxx
_historyxxx
はwaits
,stages
,statements
,transactions
)
この構成はグローバルにイベント履歴を収集しますが、スレッドごとには収集しません。
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | NO |
| events_waits_history_long | YES |
| events_stages_current | YES |
| events_stages_history | NO |
| events_stages_history_long | YES |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | YES |
| events_transactions_current | YES |
| events_transactions_history | NO |
| events_transactions_history_long | YES |
...
+----------------------------------+---------+
この構成で保守されるイベント履歴テーブル:
events_
(xxx
_history_longxxx
はwaits
,stages
,statements
,transactions
)
この構成はスレッドごとおよびグローバルにイベントを収集します。
mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME | ENABLED |
+----------------------------------+---------+
| global_instrumentation | YES |
| thread_instrumentation | YES |
| events_waits_current | YES |
| events_waits_history | YES |
| events_waits_history_long | YES |
| events_stages_current | YES |
| events_stages_history | YES |
| events_stages_history_long | YES |
| events_statements_current | YES |
| events_statements_history | YES |
| events_statements_history_long | YES |
| events_transactions_current | YES |
| events_transactions_history | YES |
| events_transactions_history_long | YES |
...
+----------------------------------+---------+
この構成で保守されるイベント履歴テーブル:
events_
(xxx
_historyxxx
はwaits
,stages
,statements
,transactions
)events_
(xxx
_history_longxxx
はwaits
,stages
,statements
,transactions
)