下面的讨论列举了进程信息的来源、查看进程信息所需的权限,并描述了进程列表条目的内容。
过程信息的来源
访问进程列表所需的权限
进程列表条目的内容
过程信息的来源
过程信息可从以下来源获得:
该SHOW PROCESSLIST 语句:第13.7.7.29,“SHOW PROCESSLIST声明”
在中mysqladmin processlist的命令: 第4.5.2节“中mysqladmin - MySQL服务器管理程序”
该INFORMATION_SCHEMA PROCESSLIST表: 第 26.3.23 节,“INFORMATION_SCHEMA PROCESSLIST 表”
Performance Schema processlist表: 第 27.12.21.5 节,“进程列表表”
Performance Schema threads表列的名称前缀为PROCESSLIST_: 第 27.12.21.6 节,“线程表”
该sys架构 processlist和 session意见: 第28.4.3.22,“ProcessList中和X $ PROCESSLIST意见”,和 第28.4.3.33,“会议和X $会话视图”
该threads表比较 SHOW PROCESSLIST, INFORMATION_SCHEMA PROCESSLIST以及 中mysqladmin的processlist如下:
对threads表的访问不需要互斥锁并且对服务器性能的影响最小。其他来源具有负面的性能影响,因为它们需要互斥锁。
笔记
从 MySQL 8.0.22 开始,SHOW PROCESSLIST可以使用基于 Performance Schema processlist表的替代实现 ,该threads表与该表一样,不需要互斥锁并具有更好的性能特征。有关详细信息,请参阅 第 27.12.21.5 节,“进程列表表”。
该threads表显示后台线程,其他来源不显示。它还为每个线程提供其他源不提供的附加信息,例如该线程是前台线程还是后台线程,以及与该线程关联的服务器内的位置。这意味着该 threads表可用于监视其他来源不能的线程活动。
您可以启用或禁用 Performance Schema 线程监控,如 第 27.12.21.6 节,“线程表”中所述。
由于这些原因,使用其他线程信息源之一执行服务器监视的 DBA 可能希望改为使用该threads表进行监视。
该sys架构 processlist从性能架构视图显示信息 threads表中更方便的格式。该sys模式 session有关,如用户会话视图显示的信息 sys架构 processlist视图,但后台进程过滤掉。
访问进程列表所需的权限
对于大多数进程信息来源,如果您有 PROCESS权限,您可以看到所有线程,甚至属于其他用户的线程。否则(没有PROCESS 特权),非匿名用户可以访问有关自己线程的信息,但不能访问其他用户的线程,而匿名用户则无法访问线程信息。
Performance Schemathreads 表还提供线程信息,但表访问使用不同的权限模型。请参阅 第 27.12.21.6 节,“线程表”。
进程列表条目的内容
每个进程列表条目都包含几条信息。以下列表使用SHOW PROCESSLIST 输出中的标签描述了它们。其他过程信息源使用类似的标签。
Id 是与线程关联的客户端的连接标识符。
User并Host 指明与线程关联的帐户。
db是线程的默认数据库,或者NULL如果没有选择。
Command并State 指出线程在做什么。
大多数状态对应于非常快速的操作。如果一个线程在给定状态下停留了很多秒,那么可能存在需要调查的问题。
以下部分列出了可能的 Command值以及 State按类别分组的值。其中一些值的含义是不言而喻的。对于其他人,提供了额外的描述。
笔记
检查进程列表信息的应用程序应该知道命令和状态可能会发生变化。
Time指示线程处于当前状态的时间。在某些情况下,线程的当前时间概念可能会改变:线程可以使用 更改时间 。对于副本 SQL 线程,该值是上次复制事件的时间戳与副本主机的实时时间之间的秒数。请参阅 第 17.2.3 节,“复制线程”。 SET TIMESTAMP = value
Info指示线程正在执行的语句,或者NULL如果它不执行任何语句。对于SHOW PROCESSLIST,此值仅包含语句的前 100 个字符。要查看完整的语句,请使用 SHOW FULL PROCESSLIST(或查询不同的进程信息源)。




