MySQL 5.6.3 以降、パフォーマンススキーマはサーバーへの接続に関する統計を提供します。クライアントが接続する場合、特定のユーザー名で特定のホストからそれを行います。パフォーマンススキーマは、これらのテーブルを使用して、アカウント (ユーザー名とホスト名) ごとに、およびユーザー名ごととホスト名ごとの個別に、接続を追跡します。
accounts
: クライアントアカウントごとの接続統計hosts
: クライアントホスト名ごとの接続統計users
: クライアントユーザー名ごとの接続統計
接続に関する情報を集計するサマリーテーブルもあります。セクション22.9.9.7「接続サマリーテーブル」を参照してください。
接続テーブルでの「アカウント」の意味は、その用語がユーザーとホスト値の組み合わせを表すという点で、mysql
データベース内の MySQL 付与テーブルでのその意味に似ています。付与テーブルでそれらが異なる点は、アカウントのホスト部分をパターンにできるのに対し、接続テーブルではホスト値は常に固有の非パターンホスト名であることです。
接続テーブルにはすべて CURRENT_CONNECTIONS
および TOTAL_CONNECTIONS
カラムがあり、統計が基づく「追跡値」ごとの現在と合計の接続数を追跡します。テーブルは、それらが追跡値に使用するものに違いがあります。accounts
テーブルには USER
および HOST
カラムがあり、ユーザー名とホスト名の組み合わせごとに接続を追跡します。users
および hosts
テーブルには USER
および HOST
カラムがあり、それぞれユーザー名ごとおよびホスト名ごとに接続を追跡します。
user1
と user2
というクライアントがそれぞれ hosta
と hostb
から一度に接続するとします。パフォーマンススキーマは次のように接続を追跡します。
accounts
テーブルには、user1
/hosta
、user1
/hostb
、user2
/hosta
、およびuser2
/hostb
アカウント値の 4 つの行があり、各行はアカウントごとに 1 つの接続をカウントします。users
テーブルには、user1
とuser2
値の 2 つの行があり、各行はユーザー名ごとに 2 つの接続をカウントします。hosts
テーブルには、hosta
とhostb
値の 2 つの行があり、各行はホスト名ごとに 2 つの接続をカウントします。
クライアントが接続すると、パフォーマンススキーマは、各テーブルに該当する追跡値を使用して、接続に適用する各接続テーブル内の行を判断します。そのような行がない場合、追加されます。次に、パフォーマンススキーマはその行の CURRENT_CONNECTIONS
および TOTAL_CONNECTIONS
カラムを 1 つ増分します。
クライアントが切断すると、パフォーマンススキーマはその行の CURRENT_CONNECTIONS
カラムを 1 つ減分し、TOTAL_CONNECTIONS
カラムは変更しないままにします。
パフォーマンススキーマは内部スレッドと認証に失敗したユーザーセッションのスレッドもカウントします。これらは、NULL
の値の USER
および HOST
カラムのある行でカウントされます。
各接続テーブルは TRUNCATE TABLE
で切り捨てることができ、次の効果があります。
CURRENT_CONNECTIONS = 0
の行が削除されます。CURRENT_CONNECTIONS > 0
の行で、TOTAL_CONNECTIONS
がCURRENT_CONNECTIONS
にリセットされます。接続テーブルに依存する接続サマリーテーブルは暗黙的に切り捨てられます (サマリー値は 0 に設定されます)。暗黙的な切り捨ての詳細については、セクション22.9.9.7「接続サマリーテーブル」を参照してください。