Mysql占用CPU高的问题体现及2种解决方法

打印 上一主题 下一主题

主题 1594|帖子 1594|积分 4782

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题体现

服务器系统负载高,CPU长时间接近100%,通过top下令检察得知mysqld占用极高,问题锁定mysql。通常是由于SQL语句优化不到位造成的。
可以通过以下两种方法进行排查和解决
1、通过使用开启并检察慢查询日志解决问题。
2、通过使用show processlist;
下令解决问题。
方法一、通过使用开启并检察慢查询日志解决问题

1、登录mysql

  1. mysql -u root -p
复制代码
然后输入密码,即可登录mysql,从而在提示符下输入下令
2、检察慢查询SQL是否启用

  1. show variables like 'log_slow_queries';
复制代码
假如效果为ON则是开启了,假如为OFF则体现禁用了。
3、开启慢查询下令

  1. set global log_slow_queries = on;
复制代码
因开启后当出现慢SQL后会主动记录在日志中,故而日志文件会越来越大,故发起非调试时关闭此功能。
4、检察慢查询存放日志

  1. show variables like 'slow_query_log_file';
复制代码
显示日志存在位置,即可去相应目录下检察。
方法二、通过使用show processlist;
下令解决问题


1、登录mysql

  1. mysql -u root -p
复制代码
然后输入密码,即可登录mysql,从而在提示符下输入下令
2、输入show processlist;
下令


show processlist;
下令可以检察当前正在执行的线程
  1. show processlist;
复制代码
下令返回的详细参数比较多,详细含义请自行百度。这里主要留意state字段中假如包罗大量的Sending data、Waiting for tabls、或各种lock(锁),大概率就是因为这些SQL造成的数据库拥堵
解决办法自然是优化对应的SQL,如盼望更进一步,则必要开启检察慢查询日志。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表