SHOW [FULL] PROCESSLIST
SHOW
PROCESSLIST
はどのスレッドが起動しているかを表示します。また、この情報は、INFORMATION_SCHEMA
PROCESSLIST
テーブルまたは mysqladmin
processlist
コマンドから取得することもできます。もし
PROCESS
権限を持っていれば、すべてのスレッドを見ることができます。そうでない場合は、ユーザー独自のスレッド
(つまり、使用している MySQL
アカウントに関連付けられたスレッド)
のみを表示できます。FULL
キーワードを使用しない場合は、各ステートメントの最初の
100 文字のみが Info
フィールドに表示されます。
このステートメントは、「too many
connections」
エラーメッセージを受け取り、何が起こっているのを確認したいときに大変役に立ちます。MySQL
は、管理者がいつでもシステムに接続して確認できることを保証するため、SUPER
権限を持つアカウントに利用されることができる接続を
1
つ余分に確保します。(この権限をすべてのユーザーには与えていないと仮定しています)。
スレッドは、KILL
ステートメントを使用して強制終了できます。項8.5.6.4. 「KILL
構文」
を参照してください。
SHOW
PROCESSLIST
の出力例を次に示します。
mysql> SHOW FULL PROCESSLIST\G *************************** 1. row *************************** Id: 1 User: system user Host: db: NULL Command: Connect Time: 1030455 State: Waiting for master to send event Info: NULL *************************** 2. row *************************** Id: 2 User: system user Host: db: NULL Command: Connect Time: 1004 State: Has read all relay log; waiting for the slave I/O thread to update it Info: NULL *************************** 3. row *************************** Id: 3112 User: replikator Host: artemis:2204 db: NULL Command: Binlog Dump Time: 2144 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL *************************** 4. row *************************** Id: 3113 User: replikator Host: iconnect2:45781 db: NULL Command: Binlog Dump Time: 2086 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL *************************** 5. row *************************** Id: 3123 User: stefan Host: localhost db: apollon Command: Query Time: 0 State: NULL Info: SHOW FULL PROCESSLIST 5 rows in set (0.00 sec)
出力カラムは次の意味を持っています。
Id
接続識別子。
User
ステートメントを発行した MySQL
ユーザー。これが system
user
である場合は、タスクを内部的に処理するためにサーバーによって生成された非クライアントスレッドを参照します。これは、レプリケーションスレーブか遅れた行のハンドラに利用される
I/O または SQL
スレッドになり得ます。unauthenticated
user
は、クライアント接続に関連付けられているが、クライアントユーザーの認証がまだ実行されていないスレッドを参照します。event_scheduler
はスケジュールされたイベントをモニターするスレッドを参照することができます。system
user
か
event_scheduler
には、Host
カラム内で指定されたホストはありません。
Host
ステートメントを発行しているクライアントのホスト名
(ホストが存在しない
system user
を除く)。SHOW
PROCESSLIST
は、どのクライアントが何を実行しているかの判定を容易にするために、TCP/IP
接続のホスト名を
の形式で報告します。
host_name
:client_port
db
もし選択されれば、これがデフォルトデータベースです。そうでなければ
NULL
です。
Command
スレッドが実行しているコマンドのタイプ.
スレッドコマンドの説明については、項4.5.6. 「スレッド情報の検査」
を参照してください。このカラムの値は、クライアントサーバープロトコルの
COM_
コマンドに対応しています。詳しくは
Server Status Variables
を参照してください。
xxx
時刻
スレッドが現在の状態になってからの秒数.
State
スレッドが行っていることを示すアクション、イベント、または状態.
State
値の説明については、項4.5.6. 「スレッド情報の検査」
を参照してください。
ほとんどのステートが大変速い操作に対応します。スレッドが何秒間も特定の状態にとどまっている場合は、調査する必要のある問題が発生している可能性があります。
SHOW
PROCESSLIST
ステートメントに対しては
State
の値は
NULL
です。
Info
スレッドが実行中のステートメント、または、もしそれがステートメントを何も実行していなければ
NULL
になります。このステートメントは、サーバーに送信されるステートメント、またはこのステートメントがほかのステートメントを実行する場合は、もっとも内側のステートメントである可能性があります。たとえば、CALL
p1()
ステートメントがストアドプロシージャー
p1()
を実行し、そのプロシージャーが
SELECT
ステートメントを実行している場合、Info
値は
SELECT
ステートメントを示します。