MySQL プロセスリストには、サーバー内で実行されているスレッドのセットによって現在実行されている操作が示されます。 PROCESSLIST
テーブルは、プロセス情報のソースです。 このテーブルと他のソースの比較は、プロセス情報のソース を参照してください。
PROCESSLIST
テーブルには、次のカラムがあります:
-
ID
接続識別子。 これは、
SHOW PROCESSLIST
ステートメントのId
カラムに表示される値と同じで、パフォーマンススキーマthreads
テーブルのPROCESSLIST_ID
カラムに表示され、スレッド内のCONNECTION_ID()
関数によって返されます。 -
USER
このステートメントを発行した MySQL ユーザー。
system user
の値は、遅延行ハンドラスレッド、レプリカホストで使用される I/O または SQL スレッドなど、タスクを内部的に処理するためにサーバーによって起動される非クライアントスレッドを指します。system user
の場合、Host
カラムにホストが指定されていません。unauthenticated user
は、クライアント接続に関連付けられたが、クライアントユーザーの認証がまだ行われていないスレッドを参照します。event_scheduler
は、スケジュールされたイベントをモニターするスレッドを指します (セクション25.4「イベントスケジューラの使用」 を参照)。注記system user
のUSER
値は、SYSTEM_USER
権限とは異なります。 前者は内部スレッドを指定します。 後者は、システムユーザーと通常のユーザーアカウントカテゴリを区別します (セクション6.2.11「アカウントカテゴリ」 を参照)。 -
HOST
ステートメントを発行するクライアントのホスト名 (ホストがない
system user
を除く)。 TCP/IP 接続のホスト名は、
形式でレポートされるため、どのクライアントが何を実行しているかを簡単に判別できます。host_name
:client_port
-
DB
スレッドのデフォルトデータベース。選択されていない場合は
NULL
。 -
COMMAND
スレッドがクライアントのかわりに実行しているコマンドのタイプ。セッションがアイドル状態の場合は
Sleep
。 スレッドコマンドの説明については、セクション8.14「サーバースレッド (プロセス) 情報の確認」を参照してください。 このカラムの値は、クライアント/サーバープロトコルのCOM_
コマンドとxxx
Com_
ステータス変数に対応します。 セクション5.1.10「サーバーステータス変数」を参照してください。xxx
-
TIME
スレッドが現在の状態になってからの秒数。 レプリカ SQL スレッドの場合、この値は、最後にレプリケートされたイベントのタイムスタンプとレプリカホストのリアルタイムの間の秒数です。 セクション17.2.3「レプリケーションスレッド」を参照してください。
-
STATE
スレッドが行なっていることを示すアクション、イベント、または状態。
STATE
の値の詳細は、セクション8.14「サーバースレッド (プロセス) 情報の確認」 を参照してください。ほとんどの状態がきわめてすばやい操作に対応します。 スレッドの状態が何秒間も特定の状態にとどまっている場合は、調査が必要な問題が発生している可能性があります。
-
INFO
スレッドが実行しているステートメント。ステートメントを実行していない場合は
NULL
。 このステートメントは、サーバーに送信されるステートメント、またはこのステートメントがほかのステートメントを実行する場合は、もっとも内側のステートメントである可能性があります。 たとえば、CALL
ステートメントがSELECT
ステートメントを実行しているストアドプロシージャを実行する場合、INFO
値にはSELECT
ステートメントが表示されます。
メモ
PROCESSLIST
は非標準のINFORMATION_SCHEMA
テーブルです。SHOW PROCESSLIST
ステートメントからの出力と同様に、PROCESSLIST
テーブルには、PROCESS
権限がある場合は他のユーザーに属するスレッドも含め、すべてのスレッドに関する情報が表示されます。 それ以外の場合 (PROCESS
権限なし)、非匿名ユーザーは自分のスレッドに関する情報にはアクセスできますが、他のユーザーのスレッドにはアクセスできず、匿名ユーザーはスレッド情報にアクセスできません。SQL ステートメントが
PROCESSLIST
テーブルを参照する場合、MySQL はステートメントの実行が開始されるとテーブル全体を一度移入するため、ステートメントの実行中に読取り一貫性があります。 複数ステートメントトランザクションの読取り一貫性はありません。
次のステートメントは同等です。
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
SHOW FULL PROCESSLIST