MySQLで実行中のクエリ一覧を見て、SQLを強制終了する方法

時々、アプリケーションが暴走して変なクエリが発行されたり、いつまでたってもクエリが終わらない時とかありますよね。そんな時には、MySQLで実行中のSQLを見て、問題ありそうなものを強制終了させちゃいます。

MySQLにログイン

$ mysql -u hoge -phoge db

まずはMySQLにログイン。その後、

> show processlist;

と打つと現在実行しているSQLの一覧が表示されます。項目の中にTimeというのがありますが、これが実行から何秒経過しているかを表しています。

ちなみに

> show full processlist \G;

と full を付け加えるとSQLの全文が表示される + \G を末尾に付け加えるとクエリ毎に分割されて見やすくなります。

明らかに時間がかかって負荷の原因になっているものがあれば Id という項目で表示されている数値を使って強制終了します。(*) やみくもに強制終了すればいいというわけではないので適宜使ってください。

> kill プロセスID

これだけです。

まぁ、そもそもの負荷の原因を探って修正しないと意味ないですが、突発的な対処として。

Feed

最新記事

開発フローを独自進化させ続けている開発チームの話

こんにちは CTO の [@zaru](https://twitter.com/zaru) です。 スクラム開発をしている開発チームが、開発フローを独自進化させていて、それが良い取り組みだったので紹介しようと思います。 #...

235650?v=4
zaru
2017年11月20日

退職者を招いたLTイベントを開催した

こんにちは、ベーシック CTO [@zaru](https://twitter.com/zaru) です。 ベーシック開発部では毎月月末の金曜日にTGIFと称して、 ~~飲み会 + アナログゲームなイベント~~ 技術 LT 大会...

235650?v=4
zaru
2017年10月12日

山形ラボ、TGIFはじめました

こんにちは。株式会社ベーシック山形ラボの長谷川です。 いろんなところで書いたりなんだりしてますが、弊社には山形に「山形ラボ」というリモート拠点がありまして、そこで4人のエンジニアが働いております。 今回は その山形ラボで、...

10917612?v=4
roki1801
2017年10月10日