SHOW [FULL] PROCESSLIST
          は、実行中のスレッドを表示します。
          mysqladmin processlist
          コマンドでもこの情報を取得できます。SUPER
          権限があれば、すべてのスレッドを表示できます。この権限がない場合は、自分のスレッドのみ表示できます。
          See 項4.6.7. 「KILL 構文」。 FULL
          オプションを使用していない場合、各クエリの最初の
          100 文字だけが表示されます。
        
          4.0.12 以降、MySQL は TCP/IP 接続のホスト名を
          hostname:client_port
          形式で報告するので、どのクライアントが何を行っているかわかりやすくなっています。
        
          このコマンドは、'too many connections'
          エラーメッセージが表示され、原因を知りたいときに便利です。MySQL
          は、SUPER
          権限を持つクライアントのために 1
          つの特別接続枠を予約しており、いつでもシステムにログインしてチェックできるようになっています(ユーザ全員にこの権限を与えていないようにしてください)。
        
          mysqladmin processlist
          で確認できる一般的な状態は以下のとおりです。
        
              Checking table
              スレッドがテーブルの自動チェックを実行している。
            
              Closing tables
              スレッドが、変更されたテーブルデータをディスクにフラッシュし、使用したテーブルを閉じている。これには通常それほど時間がかからない。時間がかかる場合、ディスクの使用率をチェックする必要がある。
            
              Connect Out
              マスタに接続しているスレーブ。
            
              Copying to tmp table on disk
              テンポラリ結果セットが
              tmp_table_size
              よりも大きく、スレッドがメモリベースのテンポラリテーブルをディスクベースに変更して、メモリの節約を図っている。
            
              Creating tmp table
              スレッドは、クエリの結果の一部を保持するためのテンポラリテーブルを作成中。
            
              deleting from main table
              複数テーブルを削除する最初の段階で、最初のテーブルを削除中。
            
              deleting from reference tables
              複数テーブルを削除する 2
              番目の段階で、他のテーブルから、一致したレコードを削除中。
            
              Flushing tables スレッドが
              FLUSH TABLES
              を実行中。すべてのスレッドによりそのテーブルが閉じられるのを待っている。
            
              Killed
              誰かがスレッドを強制終了の命令を出したため、次回のキルフラグチェック時に強制終了される。MySQL
              では大きな各ループでフラグがチェックされるが、それでもスレッド終了には少し時間がかかる場合がある。スレッドが他のスレッドによってロックされている場合、そのロックが解除されたところで強制終了が実行される。
            
              Sending data スレッドは
              SELECT
              ステートメントのレコードを処理中で、かつクライアントにデータを送信中。
            
              Sorting for group
              スレッドは、GROUP BY
              のソートを実行中。
            
              Sorting for order
              スレッドは、ORDER BY
              のソートを実行中。
            
              Opening tables
              スレッドがテーブルを開こうとしている。これは、何かが妨害していなければすぐに終わるはずである。たとえば、ALTER
              TABLE や LOCK TABLE
              などにより、そのコマンドの終了時までテーブルが開かないことがある。
            
              Removing duplicates クエリで
              SELECT DISTINCT
              が使用されたが、MySQL
              は初期段階で重複を除外する最適化を実行できなかった。このため、MySQL
              は結果をクライアントに送信する前に、重複レコードを削除する段階を踏む必要がある。
            
              Reopen table
              スレッドはテーブルのロックを取得したが、ロック取得後、下のテーブル構造が変更されていることを認識した。このため、ロックを解除し、テーブルを閉じて、再び開こうとしている。
            
              Repair by sorting
              修復コードがソートを使用してインデックスを作成している。
            
              Repair with keycache
              修復コードが、キーキャッシュにより、キーを
              1
              つずつ作成している。これは、Repair
              by sorting
              よりも大幅に時間がかかる。
            
              Searching rows for update
              スレッドがレコード更新の初期段階として、更新対象の一致レコードを検索中である。レコード検索に使用するインデックスを
              UPDATE
              が変更すると、この段階が必要となる。
            
              Sleeping
              スレッドが、クライアントから新しいコマンドが送信されるのを待っている。
            
              System lock
              スレッドが、テーブルの外部システムロックを待っている。同じテーブルにアクセスする複数の
              mysqld
              サーバを使用していない場合、--skip-external-locking
              オプションでシステムロックを無効にできる。
            
              Upgrading lock INSERT
              DELAYED
              ハンドラが、レコード挿入のためにテーブルをロックしようとしている。
            
              Updating
              スレッドが更新対象レコードを検索して更新している。
            
              User Lock スレッドが
              GET_LOCK() を待っている。
            
              Waiting for tables
              下のテーブル構造が変更されているため、テーブルを開き直して新しい構造を取得する必要があるという通知をスレッドが受け取った。テーブルを開き直すためには、他のすべてのスレッドがそのテーブルを閉じるのを待つ必要がある。
            
              この通知は、他のスレッドがそのテーブルに対して
              FLUSH TABLES、FLUSH TABLES
              table_name、ALTER
              TABLE、RENAME
              TABLE、REPAIR
              TABLE、ANALYZE
              TABLE、OPTIMIZE TABLE
              のいずれかを実行している場合に発生する。
            
              waiting for handler insert
              INSERT DELAYED
              ハンドラがすべての挿入処理を完了し、新規の挿入を待機中である。
            
ほとんどの状態はすぐに終わります。何秒も同じ状態が続く場合は、問題のある可能性があるので、調査が必要です。
          他にも説明していない状態がありますが、そのほとんどは
          mysqld
          のバグ発見に役立つものです。
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

