上线之后服务器变得特别卡,半天才能响应,登录服务器后发现mysqld进程的CPU占用率超过100%,赶紧登录MySQL查看一下是什么原因
首先输入 mysql -uroot -p
然后输入密码 登录到MySQL客户端,然后执行语句
show full processlist;
这时候会打印出当前所有的连接以及其当前的状态和正在处理的语句
mysql> show full processlist;
+------+------+----------------------+------------+---------+------+----------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+------+----------------------+------------+---------+------+----------+-----------------------+
| 2223 | vien | 88.199.33.61:55085 | shit | Sleep | 5 | | NULL |
| 2224 | vien | 88.199.33.61:55091 | shit | Sleep | 2524 | | NULL |
| 2225 | vien | 88.199.33.61:35704 | shit | Sleep | 1797 | | NULL |
| 2226 | vien | 88.199.33.61:35710 | shit | Sleep | 1812 | | NULL |
| 2227 | vien | 88.199.33.61:35712 | shit | Sleep | 1812 | | NULL |
| 2228 | root | localhost:52536 | wise_court | Sleep | 0 | | NULL |
| 2229 | root | localhost | NULL | Query | 0 | starting | show full processlist |
+------+------+----------------------+------------+---------+------+----------+-----------------------+
当然,我这里是正常的没有处理查询的状态,CPU占用100%的你可能下面还有其他的连接,并且会有正在执行的语句。
通常来说,是因为这条语句执行太慢导致了CPU占用率高,所以就要分析这条查询语句,是不是写的不够优,看看有没有优化空间,这是其一,其二是看一下条件查询或者用来排序的字段加没加索引,如果是一张大表,没有索引可是很伤的,赶紧加上索引,你的问题就解决了。
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/257