PROCESSLIST表
该PROCESSLIST
表提供有关正在运行的线程的信息。
该PROCESSLIST
表包含以下列:
ID
连接标识符。这
Id
与在SHOW PROCESSLIST
语句的PROCESSLIST_ID
列,“性能模式”threads
表的列中显示并由CONNECTION_ID()
函数返回的值的类型相同。USER
发出该语句的MySQL用户。值表示
system user
服务器产生的非客户端线程,以在内部处理任务。这可能是复制从属服务器或延迟行处理程序上使用的I / O或SQL线程。对于system user
,在Host
列中未指定主机。unauthenticated user
是指已经与客户端连接相关联但尚未完成客户端用户身份验证的线程。event_scheduler
是指监视计划的事件的线程(请参见“MySQL事件计划程序”)。注意
甲
USER
的值system user
是从不同的SYSTEM_USER
特权。前者指定内部线程。后者区分系统用户帐户和常规用户帐户类别(请参见“帐户类别”)。HOST
发出该语句的客户端的主机名(除了
system user
,没有主机)。TCP / IP连接的主机名以格式报告,以便更轻松地确定哪个客户端在做什么。host_name:client_port
DB
默认数据库(如果已选择);否则
NULL
。COMMAND
线程正在执行的命令的类型。有关线程命令的描述,请参见“检查线程信息”。该列的值对应于客户端/服务器协议的命令和状态变量。请参见“服务器状态变量”
COM_xxx
Com_xxx
TIME
线程处于其当前状态的时间(以秒为单位)。对于从属SQL线程,该值是上次复制事件的时间戳与从属计算机的实时之间的秒数。请参见“复制实现细节”。
STATE
指示线程正在执行的操作,事件或状态。
STATE
值的说明可以在“检查线程信息”中找到。大多数状态对应于非常快速的操作。如果线程在给定状态下停留许多秒钟,则可能存在需要调查的问题。
对于
SHOW PROCESSLIST
声明中的价值STATE
是NULL
。INFO
线程正在执行的语句,或者
NULL
未执行任何语句的语句。该语句可能是发送到服务器的那条语句,或者是最内部的语句(如果该语句执行其他语句)。例如,如果一条CALL
语句执行了正在执行一条SELECT
语句的存储过程,则该INFO
值将显示该SELECT
语句。
注意
- 该
PROCESSLIST
表是非标准INFORMATION_SCHEMA
表。 - 像该
SHOW PROCESSLIST
语句的输出一样,该PROCESSLIST
表仅显示有关您自己的线程的信息,除非您具有PROCESS
特权,在这种情况下,您还将看到有关其他线程的信息。作为匿名用户,您根本看不到任何行。 - 如果一条SQL语句引用该
PROCESSLIST
表,则在执行语句开始时,MySQL会一次填充整个表,因此在该语句期间具有读取一致性。多语句事务没有读取一致性。
流程信息也可从中mysqladmin的processlist命令时,SHOW PROCESSLIST
语句和性能架构threads
表(见“中mysqladmin-客户端管理MySQL服务器”,第13.7.7.29,“SHOW PROCESSLIST的声明”,并科26.12.18.5,“线程表”)。与由于需要互斥锁而对INFORMATION_SCHEMA
PROCESSLIST
表和SHOW PROCESSLIST
语句造成负面性能影响的表相比,对表和语句的访问threads
不需要互斥锁,并且对服务器性能的影响最小。的threads
table还显示了有关后台线程的信息,而该PROCESSLIST
表SHOW PROCESSLIST
却没有。这意味着threads
可以用来监视其他线程信息源无法监视的活动。
以下语句是等效的:
SELECT *FROM INFORMATION_SCHEMA.PROCESSLIST SHOW FULL PROCESSLIST