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


MySQL 8.0 リファレンスマニュアル  /  ...  /  パフォーマンススキーマのステータス変数のテーブル

27.12.15 パフォーマンススキーマのステータス変数のテーブル

MySQL サーバーは、その操作に関する情報を提供する多くのステータス変数を保持します (セクション5.1.10「サーバーステータス変数」 を参照)。 ステータス変数情報は、次の「パフォーマンススキーマ」テーブルで使用できます:

  • global_status: グローバルステータス変数。 グローバル値のみが必要なアプリケーションでは、このテーブルを使用する必要があります。

  • session_status: 現在のセッションのステータス変数。 独自のセッションのすべてのステータス変数値を必要とするアプリケーションでは、このテーブルを使用する必要があります。 これには、セッションのセッション変数と、対応するセッションがないグローバル変数の値が含まれます。

  • status_by_thread: 各アクティブセッションのセッションステータス変数。 特定のセッションのセッション変数値を知るアプリケーションでは、このテーブルを使用する必要があります。 これには、スレッド ID で識別されるセッション変数のみが含まれます。

アカウント、ホスト名およびユーザー名ごとに集計されたステータス変数情報を提供するサマリーテーブルもあります。 セクション27.12.18.12「ステータス変数サマリーテーブル」を参照してください。

セッション変数テーブル (session_statusstatus_by_thread) には、アクティブセッションの情報のみが含まれ、終了したセッションは含まれません。

パフォーマンススキーマは、threads テーブル内の INSTRUMENTED 値が YES であるスレッドについてのみ、グローバルステータス変数の統計を収集します。 セッションステータス変数の統計は、INSTRUMENTED の値に関係なく常に収集されます。

パフォーマンススキーマは、ステータス変数テーブル内の Com_xxx ステータス変数の統計情報を収集しません。 グローバルステートメントの実行数およびセッションごとのステートメントの実行数を取得するには、それぞれ events_statements_summary_global_by_event_name テーブルおよび events_statements_summary_by_thread_by_event_name テーブルを使用します。 例:

SELECT EVENT_NAME, COUNT_STAR
FROM performance_schema.events_statements_summary_global_by_event_name
WHERE EVENT_NAME LIKE 'statement/sql/%';

global_status テーブルと session_status テーブルには、次のカラムがあります:

  • VARIABLE_NAME

    ステータス変数名。

  • VARIABLE_VALUE

    ステータス変数の値。 global_status の場合、このカラムにはグローバル値が含まれます。 session_status の場合、このカラムには現在のセッションの変数値が含まれます。

global_status テーブルと session_status テーブルには、次のインデックスがあります:

  • 主キー (VARIABLE_NAME)

status_by_thread テーブルには、各アクティブスレッドのステータスが含まれます。 これには次のカラムがあります。

  • THREAD_ID

    ステータス変数が定義されているセッションのスレッド識別子。

  • VARIABLE_NAME

    ステータス変数名。

  • VARIABLE_VALUE

    THREAD_ID カラムで指定されたセッションのセッション変数値。

status_by_thread テーブルには次のインデックスがあります:

  • 主キー (THREAD_IDVARIABLE_NAME)

status_by_thread テーブルには、フォアグラウンドスレッドに関するステータス変数情報のみが含まれます。 performance_schema_max_thread_instances システム変数が自動スケーリングされず (値−1 で示される)、インストゥルメントされるスレッドオブジェクトの最大許容数がバックグラウンドスレッドの数を超えていない場合、テーブルは空になります。

パフォーマンススキーマは、次のようなステータス変数テーブルの TRUNCATE TABLE をサポートします:

  • global_status: スレッド、アカウント、ホストおよびユーザーのステータスをリセットします。 サーバーがリセットしないグローバルステータス変数をリセットします。

  • session_status: サポートされません。

  • status_by_thread: すべてのスレッドのステータスをグローバルステータスおよびアカウントステータスに集計し、スレッドステータスをリセットします。 アカウント統計が収集されない場合、ホストおよびユーザーのステータスが収集されると、セッションステータスがホストおよびユーザーのステータスに追加されます。

    performance_schema_accounts_sizeperformance_schema_hosts_size および performance_schema_users_size システム変数がそれぞれ 0 に設定されている場合、アカウント、ホストおよびユーザーの統計は収集されません。

FLUSH STATUS は、すべてのアクティブセッションのセッションステータスをグローバルステータス変数に追加し、すべてのアクティブセッションのステータスをリセットし、切断されたセッションから集計されたアカウント、ホストおよびユーザーステータス値をリセットします。


関連キーワード:  テーブル, 変数, ステータス, パフォーマンス, スキーマ, status, セッション, events, replication, thread