MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
クライアントは、MySQL サーバーに接続すると、特定のユーザー名で特定のホストから接続します。 パフォーマンススキーマは、次のテーブルを使用して、これらの接続に関する統計情報を提供し、アカウント (ユーザーとホストの組み合わせ) ごとに追跡したり、ユーザー名とホスト名ごとに個別に追跡したりします:
accounts: クライアントアカウントごとの接続統計
hosts: クライアントホスト名ごとの接続統計
users: クライアントユーザー名ごとの接続統計
接続テーブルの 「account」 の意味は、mysql システムデータベースの MySQL 付与テーブルでの意味と似ていますが、この用語はユーザーとホストの値の組合せを意味します。 権限付与テーブルの場合、アカウントのホスト部分はパターンにできますが、「パフォーマンススキーマ」テーブルの場合、ホスト値は常に特定のパターン以外のホスト名になります。
各接続テーブルには、統計の基になる「「トラッキング値」」当たりの現在の接続数および合計接続数を追跡するための CURRENT_CONNECTIONS カラムと TOTAL_CONNECTIONS カラムがあります。 テーブルは、それらが追跡値に使用するものに違いがあります。 accounts テーブルには、ユーザーとホストの組合せごとに接続を追跡するための USER カラムと HOST カラムがあります。 users テーブルと hosts テーブルには、ユーザー名とホスト名ごとに接続を追跡するための USER カラムと HOST カラムがそれぞれあります。
パフォーマンススキーマは、NULL の USER および HOST カラム値を持つ行を使用して、認証に失敗したユーザーセッションの内部スレッドとスレッドもカウントします。
user1 と user2 というクライアントがそれぞれ hosta と hostb から一度に接続するとします。 パフォーマンススキーマは次のように接続を追跡します。
accounts テーブルには、user1/hosta、user1/hostb、user2/hosta および user2/hostb アカウント値について、各行でアカウントごとに 1 つの接続がカウントされる 4 つの行があります。
hosts テーブルには 2 つの行があり、hosta および hostb の場合、各行はホスト名ごとに 2 つの接続をカウントします。
users テーブルには 2 つの行があり、user1 および user2 の場合、各行はユーザー名ごとに 2 つの接続をカウントします。
クライアントが接続すると、パフォーマンススキーマは、各テーブルに適した追跡値を使用して、各接続テーブルのどの行が適用されるかを決定します。 そのような行がない場合、追加されます。 次に、パフォーマンススキーマはその行の CURRENT_CONNECTIONS および TOTAL_CONNECTIONS カラムを 1 つ増分します。
クライアントが切断すると、パフォーマンススキーマはその行の CURRENT_CONNECTIONS カラムを 1 つ減分し、TOTAL_CONNECTIONS カラムは変更しないままにします。
TRUNCATE TABLE は接続テーブルに対して許可されます。 これには次の効果があります:
現在の接続を持たないアカウント、ホストまたはユーザー (CURRENT_CONNECTIONS = 0 の行) の行は削除されます。
削除されていない行はリセットされ、現在の接続のみがカウントされます: CURRENT_CONNECTIONS > 0 の行の場合、TOTAL_CONNECTIONS は CURRENT_CONNECTIONS にリセットされます。
このセクションの後半で説明するように、接続テーブルに依存するサマリーテーブルは暗黙的に切り捨てられます。
パフォーマンススキーマは、アカウント、ホスト、またはユーザーごとにさまざまなイベントタイプの接続統計を集約するサマリーテーブルを保持します。 これらのテーブルの名前には、_summary_by_account、_summary_by_host または_summary_by_user が含まれます。 識別するには、次のクエリーを使用します:
mysql>SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLESWHERE TABLE_SCHEMA = 'performance_schema'AND TABLE_NAME REGEXP '_summary_by_(account|host|user)'ORDER BY TABLE_NAME;+------------------------------------------------------+ | TABLE_NAME | +------------------------------------------------------+ | events_errors_summary_by_account_by_error | | events_errors_summary_by_host_by_error | | events_errors_summary_by_user_by_error | | events_stages_summary_by_account_by_event_name | | events_stages_summary_by_host_by_event_name | | events_stages_summary_by_user_by_event_name | | events_statements_summary_by_account_by_event_name | | events_statements_summary_by_host_by_event_name | | events_statements_summary_by_user_by_event_name | | events_transactions_summary_by_account_by_event_name | | events_transactions_summary_by_host_by_event_name | | events_transactions_summary_by_user_by_event_name | | events_waits_summary_by_account_by_event_name | | events_waits_summary_by_host_by_event_name | | events_waits_summary_by_user_by_event_name | | memory_summary_by_account_by_event_name | | memory_summary_by_host_by_event_name | | memory_summary_by_user_by_event_name | +------------------------------------------------------+
個々の接続サマリーテーブルの詳細は、サマリーが作成されたイベントタイプのテーブルについて説明しているセクションを参照してください:
待機イベントのサマリー: セクション27.12.18.1「待機イベント要約テーブル」
ステージイベントサマリー: セクション27.12.18.2「ステージサマリーテーブル」
ステートメントイベントサマリー: セクション27.12.18.3「ステートメントサマリーテーブル」
トランザクションイベントサマリー: セクション27.12.18.5「トランザクション要約テーブル」
メモリーイベントサマリー: セクション27.12.18.10「メモリーサマリーテーブル」
エラーイベントサマリー: セクション27.12.18.11「エラー要約テーブル」
TRUNCATE TABLE は接続サマリーテーブルに使用できます。 接続のないアカウント、ホストまたはユーザーの行を削除し、残りの行のサマリーカラムをゼロにリセットします。 また、アカウント、ホスト、ユーザーまたはスレッド別に集計された各サマリーテーブルは、依存する接続テーブルの切捨てによって暗黙的に切り捨てられます。 次のテーブルに、接続テーブルの切捨てと暗黙的に切り捨てられたテーブルの関係を示します。
表 27.2 接続テーブルの切捨ての暗黙的な影響
| 切り捨てられた接続テーブル | 暗黙的に切り捨てられたサマリーテーブル |
|---|---|
accounts |
_summary_by_account、_summary_by_thread を含む名前を持つテーブル |
hosts |
_summary_by_account, _summary_by_host, _summary_by_thread を含む名前を持つテーブル |
users |
_summary_by_account, _summary_by_user, _summary_by_thread を含む名前を持つテーブル |
_summary_global サマリーテーブルを切り捨てると、対応する接続およびスレッドサマリーテーブルも暗黙的に切り捨てられます。 たとえば、events_waits_summary_global_by_event_name を切り捨てると、アカウント、ホスト、ユーザーまたはスレッドごとに集計された待機イベントサマリーテーブルが暗黙的に切り捨てられます。