[+/-]
MySQL サーバーで実行されている内容を確認するには、プロセスリストを検査すると役立つ場合があります。これは、サーバー内で現在実行されているスレッドのリストです。プロセスリストの情報は次の方法で入手できます。
SHOW [FULL] PROCESSLIST
ステートメント: 項8.5.5.31. 「SHOW PROCESSLIST
構文」
SHOW PROFILE
ステートメント: 項8.5.5.33. 「SHOW PROFILES
構文」
INFORMATION_SCHEMA
PROCESSLIST
テーブル: The INFORMATION_SCHEMA PROCESSLIST
Table
mysqladmin processlist コマンド: 項3.2. 「mysqladmin — MySQL サーバーの管理を行うクライアント」
自分のスレッドに関する情報は常に表示できます。ほかのアカウントで実行されているスレッドに関する情報を表示するには、PROCESS
権限が必要です。
プロセスリストの各エントリには、いくつかの情報が含まれています。
Id
は、スレッドに関連付けられているクライアントの接続識別子です。
User
と
Host
は、スレッドに関連付けられているアカウントを示します。
db
は、スレッドのデフォルトのデータベースです。何も選択されていない場合は
NULL
です。
Command
と
State
は、スレッドで実行されている内容を示します。
ほとんどのステートが大変速い操作に対応します。スレッドの状態が何秒間も変化しない場合は、問題が発生している可能性があり、調査が必要です。
Time
は、スレッドの現在の状態がどれだけ続いているかを示します。場合によっては、スレッドの現在時刻の認識が変化することがあります。スレッドでは、SET
TIMESTAMP =
を使用して時刻を変更できます。マスターからのイベントを処理しているスレーブでスレッドが実行されている場合、スレッドの時刻はイベント内に見つかった時刻に設定されるため、スレーブではなくマスターの現在時刻を反映します。
value
Info
には、スレッドで実行されているステートメントのテキストが含まれます。何も実行されていない場合は
NULL
です。デフォルトでは、この値にはステートメントの先頭の
100
文字だけが含まれます。完全なステートメントを表示するには、SHOW
FULL PROCESSLIST
を使用します。
以降の節では、Command
が取り得る値と、カテゴリ別に
State
の値を説明します。これらの値には意味が自明なものもあります。そうでないものには追加の説明が加えられています。