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


MySQL 8.4 参考手册  /  ...  /  访问进程列表

10.14.1 访问进程列表

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

进程信息的来源

进程信息可从以下来源获取

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

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

    注意

    基于性能模式 processlist 表提供了 SHOW PROCESSLIST 的替代实现,该实现与 threads 表一样,不需要互斥锁,并且具有更好的性能特征。有关详细信息,请参阅 第 29.12.22.7 节,“processlist 表”

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

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

由于这些原因,使用其他线程信息源执行服务器监控的 DBA 可能希望改为使用 threads 表进行监控。

sys 架构 processlist 视图以更易于访问的格式呈现性能架构 threads 表中的信息。sys 架构 session 视图提供有关用户会话的信息,如 sys 架构 processlist 视图,但过滤掉了后台进程。

访问进程列表所需的权限

对于大多数进程信息源,如果您拥有 PROCESS 权限,则可以看到所有线程,即使是属于其他用户的线程。否则(没有 PROCESS 权限),非匿名用户可以访问有关其自身线程的信息,但不能访问其他用户的线程,而匿名用户则无权访问线程信息。

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

进程列表条目的内容

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

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

  • UserHost 指示与线程关联的帐户。

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

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

    大多数状态对应于非常快的操作。如果一个线程在给定状态下停留数秒,则可能存在需要调查的问题。

    以下部分列出了可能的 Command 值,以及按类别分组的 State 值。其中一些值的含义是不言自明的。对于其他值,则提供了其他说明。

    注意

    检查进程列表信息的应用程序应该注意,命令和状态可能会发生变化。

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

  • Info 指示线程正在执行的语句,如果未执行任何语句,则为 NULL。对于 SHOW PROCESSLIST,此值仅包含语句的前 100 个字符。要查看完整语句,请使用 SHOW FULL PROCESSLIST(或查询其他进程信息源)。