文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  INFORMATION_SCHEMA PROCESSLIST 表

28.3.23 INFORMATION_SCHEMA PROCESSLIST 表

重要

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 线程。对于 system userHost 列中没有指定主机。 unauthenticated user 指的是已与客户端连接相关联但尚未对客户端用户进行身份验证的线程。 event_scheduler 指的是监视计划事件的线程(请参阅 第 27.4 节,“使用事件调度程序”)。

    注意

    USER 值为 system userSYSTEM_USER 权限不同。前者指定内部线程。后者区分系统用户和常规用户帐户类别(请参阅 第 8.2.11 节,“帐户类别”)。

  • HOST

    发出语句的客户端的主机名(除了 system user,因为它没有主机)。TCP/IP 连接的主机名以 host_name:client_port 格式报告,以便更轻松地确定哪个客户端在执行什么操作。

  • DB

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

  • COMMAND

    线程代表客户端执行的命令类型,如果会话处于空闲状态,则为 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 时间戳表示。