Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  SHOW PROCESSLIST Statement

15.7.7.31 显示进程列表语句

SHOW [FULL] PROCESSLIST
Important

INFORMATION SCHEMA 实现的 SHOW PROCESSLIST 已弃用,并将在未来 MySQL 版本中删除。建议使用性能模式实现的 SHOW PROCESSLIST

MySQL 进程列表指示服务器中当前执行的操作线程集。该 SHOW PROCESSLIST 语句是进程信息的一个来源。有关该语句与其他来源的比较,请参阅 进程信息来源

Note

基于性能模式的 SHOW PROCESSLIST 的替代实现可用,基于性能模式的 processlist 表,不需要互斥锁,并具有更好的性能特征。有关详细信息,请参阅 第 29.12.22.7 节,“进程列表表”

如果您拥有 PROCESS 权限,可以查看所有线程,包括其他用户的线程。否则(没有 PROCESS 权限),非匿名用户可以访问自己的线程信息,但不能访问其他用户的线程信息,而匿名用户没有线程信息访问权限。

不带 FULL 关键字,SHOW PROCESSLIST 只显示每个语句的前 100 个字符在 Info 字段中。

SHOW PROCESSLIST 语句非常有用,如果您收到“too many connections”错误信息,并想知道发生了什么。MySQL 保留一个额外的连接,以供拥有 CONNECTION_ADMIN 权限(或弃用的 SUPER 权限)的账户使用,以确保管理员总是可以连接和检查系统(假设您没有将该权限授予所有用户)。

线程可以使用 KILL 语句终止。请参阅 第 15.7.8.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 source 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 replica
         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 replica; 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 replica; 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

SHOW PROCESSLIST 输出具有以下列:

  • Id

    连接标识符。这是 INFORMATION_SCHEMA PROCESSLIST 表中显示的 ID 列,显示在性能模式 threads 表的 PROCESSLIST_ID 列中,并由 CONNECTION_ID() 函数在线程中返回。

  • User

    发出该语句的 MySQL 用户。值为 system user 指的是服务器内部线程,例如延迟行处理器线程或复制主机上的 I/O(接收器)或 SQL(应用程序)线程。对于 system user,主机列中没有指定主机。unauthenticated user 指的是已经与客户端连接关联的线程,但尚未发生客户端用户身份验证。event_scheduler 指的是监视计划事件的线程(见 第 27.4 节,“使用事件计划程序”)。

    Note

    值为 system userUserSYSTEM_USER 权限不同。前者指定内部线程,后者区分系统用户和普通用户账户类别(见 第 8.2.11 节,“账户类别”)。

  • 主机

    发出语句的客户端的主机名(除 system user 外,无主机)。TCP/IP 连接的主机名以 host_name:client_port 格式报告,以便更容易确定哪个客户端正在执行什么操作。

  • 数据库

    线程的默认数据库,或者如果没有选择则为 NULL

  • 命令

    线程正在执行的客户端命令类型,或者如果会话处于空闲状态则为 Sleep。有关线程命令的描述,请参见 第 10.14 节,“服务器线程(进程)信息”。该列的值对应于客户端/服务器协议的 COM_xxx 命令和 Com_xxx 状态变量。见 第 7.1.10 节,“服务器状态变量”

  • 时间

    线程处于当前状态的时间(以秒为单位)。对于复制 SQL 线程,该值是最后一个复制事件的时间戳和复制主机的实际时间之间的差异。见 第 19.2.3 节,“复制线程”

  • 状态

    线程当前正在执行的操作、事件或状态。有关 State 值的描述,请参见 第 10.14 节,“服务器线程(进程)信息”

    大多数状态对应非常快速的操作。如果线程长时间保持某个状态,可能需要调查问题。

  • 信息

    线程正在执行的语句,或者如果没有执行语句则为 NULL。该语句可能是发送到服务器的语句,或者如果语句执行其他语句,则为最内层语句。例如,如果 CALL 语句执行存储过程,该存储过程执行 SELECT 语句,则 Info 值显示 SELECT 语句。