苏眠月|MySQL优化:explain、show profile和show processlist( 五 )

可以看到我的MySQL实例当前有2个连接 。 其中各个字段的含义如下
苏眠月|MySQL优化:explain、show profile和show processlist对于Command字段 , 对应的状态如下:

  • sleep:正在等待客户端发送新的请求
  • query:正在执行查询或者正在将结果发送给客户端
  • locked:在MySQL服务层 , 线程正在等待表锁
  • analyzing and statistics:线程正在收集存储引擎的统计信息 , 并生成查询的执行计划
  • copying to tmp table:线程正在执行查询 , 并且将其结果集都复制到一个临时表中
  • sorting result:正在对结果集进行排序
  • sending data:线程可能在多个状态之间传送数据 , 或者在生成结果集或者向客户端返回数据
show processlist命令默认Info字段最多显示每条语句的前100个字符 , 如果想完全显示 , 可以使用show full processlist
总结学会了explain和show profile这两个命令 , 足以应用于一些比较简单的性能分析场景 。 分析出SQL语句存在的问题 , 从而写出更优质的SQL语句 。
show processlist命令则是用来管理MySQL实例的连接情况 , 如果收到类似too many connections的错误 , 使用此命令将非常有用 。
作者:Sicimike
原文链接:


推荐阅读