MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  INFORMATION_SCHEMA テーブル  /  INFORMATION_SCHEMA PROCESSLIST テーブル

26.23 INFORMATION_SCHEMA PROCESSLIST テーブル

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 userUSER 値は、SYSTEM_USER 権限とは異なります。 前者は内部スレッドを指定します。 後者は、システムユーザーと通常のユーザーアカウントカテゴリを区別します (セクション6.2.11「アカウントカテゴリ」 を参照)。

  • HOST

    ステートメントを発行するクライアントのホスト名 (ホストがない system user を除く)。 TCP/IP 接続のホスト名は、host_name:client_port 形式でレポートされるため、どのクライアントが何を実行しているかを簡単に判別できます。

  • DB

    スレッドのデフォルトデータベース。選択されていない場合は NULL

  • COMMAND

    スレッドがクライアントのかわりに実行しているコマンドのタイプ。セッションがアイドル状態の場合は Sleep。 スレッドコマンドの説明については、セクション8.14「サーバースレッド (プロセス) 情報の確認」を参照してください。 このカラムの値は、クライアント/サーバープロトコルの COM_xxx コマンドと Com_xxx ステータス変数に対応します。 セクション5.1.10「サーバーステータス変数」を参照してください。

  • 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

関連キーワード:  テーブル, SCHEMA, INFORMATION, INNODB, ステートメント, PROCESSLIST, 実行, 参照, 情報, TABLE