MySQL サーバーは、その操作に関する情報を提供する多くのステータス変数を保持します (セクション5.1.10「サーバーステータス変数」 を参照)。 ステータス変数情報は、次の「パフォーマンススキーマ」テーブルで使用できます:
global_status
: グローバルステータス変数。 グローバル値のみが必要なアプリケーションでは、このテーブルを使用する必要があります。session_status
: 現在のセッションのステータス変数。 独自のセッションのすべてのステータス変数値を必要とするアプリケーションでは、このテーブルを使用する必要があります。 これには、セッションのセッション変数と、対応するセッションがないグローバル変数の値が含まれます。status_by_thread
: 各アクティブセッションのセッションステータス変数。 特定のセッションのセッション変数値を知るアプリケーションでは、このテーブルを使用する必要があります。 これには、スレッド ID で識別されるセッション変数のみが含まれます。
アカウント、ホスト名およびユーザー名ごとに集計されたステータス変数情報を提供するサマリーテーブルもあります。 セクション27.12.18.12「ステータス変数サマリーテーブル」を参照してください。
セッション変数テーブル (session_status
、status_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_ID
、VARIABLE_NAME
)
status_by_thread
テーブルには、フォアグラウンドスレッドに関するステータス変数情報のみが含まれます。 performance_schema_max_thread_instances
システム変数が自動スケーリングされず (値−1 で示される)、インストゥルメントされるスレッドオブジェクトの最大許容数がバックグラウンドスレッドの数を超えていない場合、テーブルは空になります。
パフォーマンススキーマは、次のようなステータス変数テーブルの TRUNCATE TABLE
をサポートします:
global_status
: スレッド、アカウント、ホストおよびユーザーのステータスをリセットします。 サーバーがリセットしないグローバルステータス変数をリセットします。session_status
: サポートされません。-
status_by_thread
: すべてのスレッドのステータスをグローバルステータスおよびアカウントステータスに集計し、スレッドステータスをリセットします。 アカウント統計が収集されない場合、ホストおよびユーザーのステータスが収集されると、セッションステータスがホストおよびユーザーのステータスに追加されます。performance_schema_accounts_size
、performance_schema_hosts_size
およびperformance_schema_users_size
システム変数がそれぞれ 0 に設定されている場合、アカウント、ホストおよびユーザーの統計は収集されません。
FLUSH STATUS
は、すべてのアクティブセッションのセッションステータスをグローバルステータス変数に追加し、すべてのアクティブセッションのステータスをリセットし、切断されたセッションから集計されたアカウント、ホストおよびユーザーステータス値をリセットします。