Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


10.14.1 访问进程列表

本节讨论了进程信息的来源、查看进程信息所需的权限,以及进程列表项的内容。

进程信息来自以下来源:

threads》表与SHOW PROCESSLISTINFORMATION_SCHEMA PROCESSLISTmysqladmin processlist相比,具有以下特点:

  • 访问《threads》表不需要锁定mutex,并且对服务器性能的影响非常小。其他来源都需要锁定mutex,从而对性能产生负面影响。

    Note

    SHOW PROCESSLIST》的备用实现基于Performance Schema 《processlist》表,该表与《threads》表一样,不需要锁定mutex,并且具有更好的性能特点。详细信息,请参见第29.12.22.7节,“The processlist Table”

  • threads》表显示背景线程,这些线程其他来源不显示。此外,该表还提供了每个线程的额外信息,例如线程是否为前台或后台线程,以及与服务器相关的线程位置。这意味着《threads》表可以用来监控线程活动,而其他来源不能。

  • 您可以启用或禁用Performance Schema线程监控,详细信息请参见第29.12.22.8节,“The threads Table”

因此,对于DBA来说,使用其他线程信息来源进行服务器监控的人可能希望使用《threads》表来监控线程活动。

《sys》架构processlist视图将性能chemathreads表中的信息以更可访问的格式展现。《sys》架构session视图将用户会话信息展现,如《sys》架构processlist视图,但排除了背景进程。

对于大多数进程信息来源,如果您拥有PROCESS特权,可以查看所有线程,即使这些线程属于其他用户。否则(没有PROCESS特权),非匿名用户可以访问自己线程的信息,但不能访问其他用户的线程信息,匿名用户无法访问线程信息。

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

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

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

  • UserHost表示与线程关联的账户。

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

  • CommandState表示线程正在做什么。

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

    以下部分列出了可能的Command值和State值,按类别分组。一些值的含义是自明的。对于其他值,提供了额外的描述。

    Note

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

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

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