下級エンジニアの綴

新しく発見したことを綴っていこうと思っています。夢はでっかく上級エンジニアになることです。

mysqlのクエリが詰まったので解消したメモ

どうもやんてらです。今回はmysqlでクエリが詰まりすぎて何もできなくなったのでそれを解消したメモになります。

クエリが詰まるとCPU使用率がどんどん高くなっていきました(99.8%ぐらいまで上がっていたのでほんと危なかったです笑

show processlist を使用するとmysqlで積み上がっているクエリが見れます

show processlist
+----+------+------------------+---------+---------+------+--------------+-------------------------------------------------------------------------------------------+
| Id | User | Host             | db      | Command | Time | State        | Info                                                                                      |
+----+------+------------------+---------+---------+------+--------------+-------------------------------------------------------------------------------------------+
|  1 | root | 172.18.0.5:35500 | example | Query   |    0 | Sending data | SELECT `sutudents`.* FROM `sutudents`  WHERE `students`.`id` = 94068                      |
|  2 | root | 172.18.0.1:47626 | example | Query   |    0 | NULL         | show processlist                                                                          |
+----+------+----------------------------+---------+------+--------------+-------------------------------------------------------------------------------------------+

上で表示されている詰まっているIDのプロセスをkillすれば残りのプロセスが実行されていくはずです。

kill Id

※もし本番で発生した場合は一人で対応ではなく複数人でダブルチェックしながら作業するのがおすすめです。(select 以外のプロセスをkillすると大惨事になるので気をつけて下さい

今回はこれで以上です。