关于Mysql CPU占用过高的问题排查与优化

今天中午公司App出现网络错误无法请求数据的情况,登上阿里云看cpu使用率居然一直高达90+%,于是上服务器看究竟是哪个程序占用的,top一下,发现是mysql,下面就开始针对为什么会占用这么高的cpu问题着手解决。

1、查询原因
一般情况下,mysql占用过高多是有慢查询,但是打开my.cnf发现,之前的技术并没有打开慢查询日志,这里可以加上慢查询日志,然后重启mysql,等待日志。

slow-query-log=1 # 慢查询:确认开启
slow-query-log-file='/var/www/htmllog/slowlog.log' # 慢查询:日志文件及路径
long_query_time = 3 # 慢查询:指定超过3s仍未完成的语句,为执行过慢的语句
另一种方法是执行show PROCESSLIST语句,看哪条sql占用过多。

2、mysql调优
经过第一步之后判断有一条语句执行时间总是超过三秒,然后去看表结构的设计,有个where条件没加索引,暂时停掉httpd服务
给字段加上索引,重启之后,慢查询日志里再无记录,问题解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容