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


27.4.8 コンシューマ構成の例

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_current コンシューマがチェックされます。 これらのうち events_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      |
...
+----------------------------------+---------+

この構成では、インストゥルメンテーションがグローバルおよびスレッドごとに保守されます。 現在のイベントまたはイベント履歴テーブルで、個々のイベントは収集されません。

先述の構成に関連して、チェックされる追加のセットアップ要素:

  • xxxwaits, stages, statements, transactions であるテーブル setup_consumers、コンシューマ events_xxx_current

  • テーブル setup_actors

  • カラム threads.instrumented

先述の構成に関連して保守される追加の出力テーブル:

  • events_xxx_summary_by_yyy_by_event_name (xxxwaits, stages, statements, transactionsyyythread, 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_history(xxxwaits, stages, statements, transactions)

  • コンシューマ events_xxx_history_long(xxxwaits, stages, statements, transactions)

先述の構成に関連して保守される追加の出力テーブル:

  • events_xxx_current (xxxwaits, stages, statements, transactions)

グローバル、スレッド、現在のイベント、およびイベント履歴インストゥルメンテーション

events_xxx_history および events_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_history (xxxwaits, 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_long (xxxwaits, 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_history (xxxwaits, stages, statements, transactions)

  • events_xxx_history_long (xxxwaits, stages, statements, transactions)


関連キーワード:  テーブル, events, history, waits, 構成, statements, コンシューマ, long, stages, transactions