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

10.14.1 访问进程列表

以下讨论枚举了进程信息的来源、查看进程信息所需的权限,并描述了进程列表条目的内容。

进程信息来源

进程信息来自以下来源:

The threads 表与 SHOW PROCESSLISTINFORMATION_SCHEMA PROCESSLISTmysqladmin processlist 的比较如下:

  • 访问 threads 表不需要互斥锁,并且对服务器性能的影响最小。其他来源都需要互斥锁,会对服务器性能产生负面影响。

    Note

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

  • threads 表显示背景线程,而其他来源不显示。它还提供了其他来源不提供的每个线程的附加信息,例如线程是否为前台或背景线程,以及与服务器关联的位置。这意味着 threads 表可以用于监控其他来源无法监控的线程活动。

  • 您可以启用或禁用性能模式线程监控,如 第 29.12.22.8 节,“线程表” 所述。

因此,使用其他线程信息来源的 DBA 可能希望使用 threads 表来监控。

sys 模式 processlist 视图以更易访问的格式呈现性能模式 threads 表的信息。sys 模式 session 视图呈现用户会话信息,类似于 sys 模式 processlist 视图,但过滤掉了背景进程。

访问进程列表所需的权限

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

性能模式 threads 表也提供线程信息,但表访问使用不同的权限模型。请参阅 第 29.12.22.8 节,“线程表”

进程列表条目内容

每个进程列表条目包含多个信息部分。以下列表使用 SHOW PROCESSLIST 输出的标签描述它们。其他进程信息来源使用类似的标签。

  • Id 是与客户端关联的连接标识符。

  • UserHost 指示线程关联的账户。

  • db 是线程的默认数据库,或者 NULL 如果没有选择。

  • CommandState 指示线程正在执行的操作。

    大多数状态对应非常快速的操作。如果线程停留在某个状态数秒钟,可能需要调查问题。

    以下部分列出了可能的 Command 值和 State 值,按类别分组。一些值的含义是自明的,而其他值需要附加描述。

    Note

    检查进程列表信息的应用程序应该注意命令和状态可能会更改。

  • Time 指示线程在当前状态下的时间。线程的当前时间可能会在某些情况下更改:线程可以使用 SET TIMESTAMP = value 更改时间。对于副本 SQL 线程,值是最后一个复制事件的时间戳和副本主机的实际时间之间的秒数。请参阅 第 19.2.3 节,“复制线程”

  • 信息 表示线程正在执行的语句,或者 NULL 如果它没有执行语句。对于 SHOW PROCESSLIST,该值仅包含语句的前 100 个字符。要查看完整的语句,请使用 SHOW FULL PROCESSLIST(或查询其他进程信息源)。