0%

MySQL调优-5-show processlist

show processlist

概念:

  • show processlist命令可以查看当前MySQL实例的连接情况,
  • 用于观察是否有大量的连接处于非正常状态。用法非常简单,直接使用就行

用法

show processlist

字段的含义

字段 解释
id 连接标识符
User 当前用户
Host 操作的主机,指客户端
db 默认数据库(如果已选择);否则为NULL
Command 线程正在执行的命令类型
Time 线程处于其当前状态的持续时间(以秒为单位)
Size 指示线程正在执行的操作,事件或状态
Info 线程正在执行的语句,如果未执行任何语句,则为NULL。
该语句可能是发送到服务器的那条语句,或者是最内部的语句(如果该语句执行其他语句,比如存储过程中的select语句)

Command字段,对应的状态

  • sleep:正在等待客户端发送新的请求

  • query:正在执行查询或者正在将结果发送给客户端

  • locked:在MySQL服务层,线程正在等待表锁

  • analyzing and statistics:线程正在收集存储引擎的统计信息,并生成查询的执行计划

  • copying to tmp table:线程正在执行查询,并且将其结果集都复制到一个临时表中

  • sorting result:正在对结果集进行排序

  • sending data:线程可能在多个状态之间传送数据,或者在生成结果集或者向客户端返回数据

show full processlist

  • show processlist命令默认Info字段最多显示每条语句的前100个字符,如果想完全显示,可以使用show full processlist