MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

27.12.19.9 processlist テーブル

MySQL プロセスリストには、サーバー内で実行されているスレッドのセットによって現在実行されている操作が示されます。 processlist テーブルは、プロセス情報のソースです。 このテーブルと他のソースの比較は、プロセス情報のソース を参照してください。

processlist テーブルは直接クエリーすることができます。 PROCESS 権限を持っている場合は、他のユーザーに属するスレッドも含めて、すべてのスレッドを表示できます。 それ以外の場合 (PROCESS 権限なし)、非匿名ユーザーは自分のスレッドに関する情報にはアクセスできますが、他のユーザーのスレッドにはアクセスできず、匿名ユーザーはスレッド情報にアクセスできません。

注記

performance_schema_show_processlist システム変数が有効になっている場合、processlist テーブルは SHOW PROCESSLIST ステートメントの基礎となる代替実装の基礎としても機能します。 詳細は、このセクションの後半のを参照してください。

processlist テーブルには、各サーバープロセスの行が含まれます:

mysql> SELECT * FROM performance_schema.processlist\G
*************************** 1. row ***************************
     ID: 5
   USER: event_scheduler
   HOST: localhost
     DB: NULL
COMMAND: Daemon
   TIME: 137
  STATE: Waiting on empty queue
   INFO: NULL
*************************** 2. row ***************************
     ID: 9
   USER: me
   HOST: localhost:58812
     DB: NULL
COMMAND: Sleep
   TIME: 95
  STATE:
   INFO: NULL
*************************** 3. row ***************************
     ID: 10
   USER: me
   HOST: localhost:58834
     DB: test
COMMAND: Query
   TIME: 0
  STATE: executing
   INFO: SELECT * FROM performance_schema.processlist
...

processlist テーブルには、次のカラムがあります:

processlist テーブルには次のインデックスがあります:

TRUNCATE TABLE は、processlist テーブルに対して許可されていません。

前述のように、performance_schema_show_processlist システム変数が有効になっている場合、processlist テーブルは他のプロセス情報ソースの代替実装の基礎となります:

デフォルトの SHOW PROCESSLIST 実装は、グローバル mutex を保持しながら、スレッドマネージャ内からアクティブスレッド間で繰り返されます。 これは、特にビジー状態のシステムではパフォーマンスに悪影響を及ぼします。 代替の SHOW PROCESSLIST 実装は、パフォーマンススキーマ processlist テーブルに基づいています。 この実装は、スレッドマネージャーではなくパフォーマンススキーマからアクティブなスレッドデータをクエリーするため、mutex は必要ありません。

MySQL の構成は、次のように processlist テーブルの内容に影響します:

前述の構成パラメータは、processlist テーブルの内容に影響します。 ただし、特定の構成では、processlist の内容は performance_schema_show_processlist 設定の影響を受けません。

代替プロセスリストの実装は、MySQL クライアント/サーバープロトコルの INFORMATION_SCHEMA PROCESSLIST テーブルまたは COM_PROCESS_INFO コマンドには適用されません。