mysql占用CPU超过100%解决过程

mysql admin 670℃ 0评论

周五改了下小说站的章节存储引擎,并且加了一个站的采集源,突然发现过段时间会报mysql连接数过多,因为周未要代购,也没来得及去排查问题,今天发现问题依旧,生怕百度又把我的站拉黑,所以立即登录服务器进行排查。

一、使用top命令看到的情况如下:

可以看到服务器负载很高,mysql CPU使用已达到360%(因为是四核,所以会有超过100%的情况)。

查看cpu核数(这个是逻辑核)

more /proc/cpuinfo |grep "physical id"|grep "0"|wc -l  

二、在服务器上执行mysql -u root -p之后,输入show full processlist; 可以看到正在执行的语句。

可以看到是下面的SQL语句执行耗费了较长时间。

explain SELECT * FROM `chapter` WHERE ( site_id=3 and import=0 and book_id=22029 ) ORDER BY sort asc

 

周五改引擎的时候,把索引拿掉了,没有加上,章节表相当大,没索引不可想象

同时还发现有distinct语句,这样不会应用索引,所以一并优化掉

三、加上索引后,查询时间大幅度缩短,CPU负载很轻

接下来需要加点监控了,有问题能够提前发现,也能够预知一些隐藏的问题

转载请注明:朋克网 » mysql占用CPU超过100%解决过程

喜欢 (5)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址