MySQL优化(2)-慢查询sql-show processlist

因子:

客户今天又开始扔雷,你这个系统很卡啊,好半天打不开啊,哎呀还一直转圈圈呢啊。
趁老大没发现,赶紧登陆DB服务器看下神马情况
cpu和内存果然比平常高出不少,处于崩溃的边缘,赶紧回忆,最近改了一些sql代码,莫非。。。。

定位问题

看有没有sql语句长时间执行,拖垮服务器了?

方案二、利用mysql show processlist命令来看

show processlist包含的状态和情况非常多,分析慢查询只是其中一小点功能
我默默的打开了Navicat Lite,开始敲命令show processlist(测试环境)
MySQL优化(2)-慢查询sql-show processlist
1、看一下查出来的结果含义
•user列,显示单前用户,如果不是root,这个命令就只显示你权限范围内的sql语句。
•host列,显示这个语句是从哪个ip的哪个端口上发出的。
•db列,显示这个进程目前连接的是哪个数据库。
•command列,显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接(connect)。
•time列,此这个状态持续的时间,单位是秒。
•state列,显示使用当前连接的sql语句的状态
•info列,显示这个sql语句,因为长度有限,所以长的sql语句就显示不全

分析问题,如果command显示是query,而且time列很大的话说明info列的sql语句在长时间运行,可以定位慢查询语句。

注意:show processlist 包含state状态情况很多,这里只是其中一小点。一下列出重要一部分
MySQL优化(2)-慢查询sql-show processlist