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

问题表现

服务器系统负载高,CPU长时间接近100%,通过top命令查看得知mysqld占用极高,问题锁定mysql。通常是由于SQL语句优化不到位造成的。

可以通过以下两种方法进行排查和解决

1、通过使用开启并查看慢查询日志解决问题。

2、通过使用show processlist;命令解决问题。

方法一、通过使用开启并查看慢查询日志解决问题

1、登录mysql

mysql -u root -p

然后输入密码,即可登录mysql,从而在提示符下输入命令

2、查看慢查询SQL是否启用

show variables like 'log_slow_queries';

如果结果为ON则是开启了,如果为OFF则表示禁用了。

3、开启慢查询命令

set global log_slow_queries = on;

因开启后当出现慢SQL后会自动记录在日志中,故而日志文件会越来越大,故建议非调试时关闭此功能。

4、查看慢查询存放日志

show variables like 'slow_query_log_file';

显示日志存在位置,即可去相应目录下查看。

方法二、通过使用show processlist;命令解决问题

1、登录mysql

mysql -u root -p

然后输入密码,即可登录mysql,从而在提示符下输入命令

2、输入show processlist;命令

show processlist;命令可以查看当前正在执行的线程

show processlist;

命令返回的具体参数比较多,具体含义请自行百度。这里主要注意state字段中如果包含大量的Sending data、Waiting for tabls、或各种lock(锁),大概率就是因为这些SQL造成的数据库拥堵

解决办法自然是优化对应的SQL,如希望更进一步,则需要开启查看慢查询日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值