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  /  ...  /  The INFORMATION_SCHEMA PROCESSLIST Table

28.3.23 INFORMATION_SCHEMA PROCESSLIST 表

Important

INFORMATION_SCHEMA.PROCESSLIST 已弃用,并将在未来 MySQL 版本中删除。因此,使用该表的 SHOW PROCESSLIST 实现也已弃用。建议使用性能模式下的 PROCESSLIST 实现。

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

PROCESSLIST 表具有以下列:

  • ID

    连接标识符。这是 SHOW PROCESSLIST 语句的 Id 列、性能模式下的 threads 表的 PROCESSLIST_ID 列和 CONNECTION_ID() 函数返回的值。

  • USER

    发出语句的 MySQL 用户。如果是 system user,则表示服务器内部线程,例如延迟行处理器线程或副本主机上的 I/O 或 SQL 线程。unauthenticated user 表示与客户端连接关联的线程,但尚未进行客户端用户身份验证。event_scheduler 表示监视计划事件的线程(参阅 第 27.4 节,“使用事件计划器”)。

    Note

    USERsystem userSYSTEM_USER 权限不同。前者表示内部线程,后者区分系统用户和普通用户账户类别(参阅 第 8.2.11 节,“账户类别”)。

  • HOST

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

  • DB

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

  • COMMAND

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

  • TIME

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

  • STATE

    一个动作、事件或状态,指示线程正在执行什么操作。有关 STATE 值的描述,请参阅 第 10.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

您可以通过检查服务器状态变量 Deprecated_use_i_s_processlist_countDeprecated_use_i_s_processlist_last_timestamp 的值来获取关于该表的使用信息。Deprecated_use_i_s_processlist_count 显示自上次服务器重启以来 PROCESSLIST 表被访问的次数:Deprecated_use_i_s_processlist_last_timestamp 提供了该表最后被访问的时间戳,作为 Unix 时间戳。