标签:mysql慢查询
前几天更新完程序,测试功能时,发现应用登录非常慢,以为是应用有问题,但是等待较长一段时间后发现应用登录是ok的。检查应用日志,发现提示数据池已满,无法创建更多的连接。然后赶紧登录数据库检查,
1、top查看发现mysql进程cpu使用率竟然高达1300%多,我勒个去,这是什么鬼!
2、登录mysql查看线程
# show processlist
发现大量的从应用服务器过来的连接,而且全部是Query状态。想着看看慢查询日志有哪些SQL运行时间较长,导致连接一直保持Query状态。
3、开启慢查询日志
# show variables like "%slow%"; --查看慢查询日志是否开启
# set global slow_query_log=on; --开启慢查询日志
4、开启慢查询日志一段时间后查看慢查询日志
妈呀,sql运行时间基本上都是在150s左右,这应用能快起来才真是神了。这SQL也是没谁了~
那现在咋办呢?建索引?优化sql语句?
想想优化sql语句也是远水救不了近火了,后续再对sql语句优化吧。先试试创建索引看看吧,创建索引之后发现cpu使用率降下来了,应用登录也正常了。
5、用mysql自带慢查询日志分析工具mysqldumpslow看看有哪些语句较为严重
标签:mysql慢查询
原文地址:http://kbson.blog.51cto.com/5359697/1865013