MySQL 数据库 cpu 飙升的话,要怎么处理呢?

排查过程:

(1)使用 top 命令观察,确定是 mysqld 导致还是其他原因。

(2)如果是 mysqld 导致的,show processlist,查看 session 情况,确定是不是有消耗资源的 sql 在运行。

(3)找出消耗高的 sql,看看执行计划是否准确, 索引是否缺失,数据量是否太大。

处理:

(1)kill 掉这些线程 (同时观察 cpu 使用率是否下降),

(2)进行相应的调整 (比如说加索引、改 sql、改内存参数)

(3)重新跑这些 SQL。

其他情况:

也有可能是每个 sql 消耗资源并不多,但是突然之间,有大量的 session 连进来导致 cpu 飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,比如说限制连接数等

标签: java, Java面试题, MySQL, Java问题合集, MySQL面试题, Java编程, Java问题精选, Java常见问题