当您尝试确定MySQL服务器在做什么时,检查进程列表(这是服务器中当前正在执行的线程集)可能会有所帮助。可以从以下来源获得过程列表信息:
1、SHOW [FULL] PROCESSLIST语句: 第13.7.7.29节“ SHOW PROCESSLIST语句”
2、SHOW PROFILE语句: 第13.7.7.31节“ SHOW PROFILES语句”
3、INFORMATION_SCHEMA PROCESSLIST表: 第25.22,“该INFORMATION_SCHEMA PROCESSLIST表”
4、在中mysqladmin processlist的命令: 第4.5.2节“ 中mysqladmin -客户端管理MySQL服务器”
5、性能模式threads 表,阶段表和锁定表: 第26.12.18节“性能模式杂项表”, 第26.12.5节“性能模式阶段事件表”, 第26.12.12节“性能模式锁表”。
访问threads不需要互斥,并且对服务器性能的影响最小。 INFORMATION_SCHEMA.PROCESSLIST并且SHOW PROCESSLIST由于它们需要互斥量而 对性能造成负面影响。 threads还显示有关后台线程,哪些信息 INFORMATION_SCHEMA.PROCESSLIST和 SHOW PROCESSLIST没有。这意味着threads可以用来监视其他线程信息源无法监视的活动。
您始终可以查看有关自己线程的信息。要查看有关其他帐户正在执行的线程的信息,您必须具有PROCESS特权。
每个进程列表条目包含几条信息:
1、Id 是与线程关联的客户端的连接标识符。
2、User并Host指出与该线程关联的帐户。
3、db是线程的默认数据库,或者NULL如果未选择任何数据库。
4、Command并State 指出线程在做什么。
5、大多数状态对应于非常快速的操作。如果线程在给定状态下停留许多秒钟,则可能存在需要调查的问题。
6、时间指示线程处于当前状态的时间。在某些情况下,线程对当前时间的概念可能会改变:线程可以使用SET TIMESTAMP=value更改时间。对于在从机上运行的、正在从机上处理事件的线程,线程时间设置为在事件中找到的时间,从而反映主机上而不是从机上的当前时间
7、Info包含线程正在执行的语句的文本,或者NULL不执行的语句的文本。默认情况下,此值仅包含语句的前100个字符。要查看完整的语句,请使用 SHOW FULL PROCESSLIST。
8、sys架构 processlist视图,呈现从性能模式的信息 threads在更方便的格式表:第27.4.3.22,“ProcessList中和X $ PROCESSLIST意见”
9、sys模式 session认为,有关用户会话呈现信息(如 sys架构 processlist视图,但后台进程滤除): 第27.4.3.33,“会议和X $会话视图”
以下各节列出了可能的 Command值以及State 按类别分组的值。其中一些值的含义不言而喻。对于其他人,提供了附加描述。