码迷,mamicode.com
首页 > 数据库 > 详细

记一次mysql 导致的CPU使用率过高问题

时间:2016-10-24 17:51:59      阅读:169      评论:0      收藏:0      [点我收藏+]

标签: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 导致的CPU使用率过高问题

标签:mysql慢查询

原文地址:http://kbson.blog.51cto.com/5359697/1865013

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!