外观
Mysql占用CPU高的解决方案(show processlist)
问题表现
服务器系统负载高,CPU 长时间接近 100%,通过 top 命令查看得知 mysqld 占用极高,问题锁定 mysql。通常是由于 SQL 语句优化不到位造成的。
本教程主要通过使用 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,如希望更进一步,则需要开启查看慢查询日志。