LoginSignup
32
24

More than 5 years have passed since last update.

【MySQL】processlistでwhereを使う

Posted at

プロセスを確認する方法は2つある

次の2つどっちでも:ok:

select * from information_schema.PROCESSLIST;
SHOW [FULL] PROCESSLIST;

→[FULL]を入れなくてもOKだけど、どんなSQLが実行されているかを示すInfoが先頭100文字までしか表示されないです。

select * from information_schema.PROCESSLIST;

where句やorder by句などが使えて便利:exclamation:
以下、コピペしてそのまま使えるselect文です↓

実行時間の長い順でソートする

select * from information_schema.PROCESSLIST
order by TIME desc   -- 実行時間の長い順でソート
;

ホスト名やIPアドレスで絞り込む

select * from information_schema.PROCESSLIST
where
  HOST like '%192:%'  -- ホストIPの一部でlike検索
  or DB = 'testDB'     -- スキーマ名で検索
;

ホスト名で「:」を入れているのは、ポート番号の手前だけでlike検索したいからです。
開発環境だと、末尾だけ異なる似たようなIPアドレスのプロセスが大量に並ぶので、末尾だけで確実に絞り込みたいからです。

あと、重いプロセスをkillする時は、出来るだけホスト名やIPアドレスで絞り込むとよいと思います。
他人のプロセスを間違えてkillすることもないわけじゃないので・・・。
(先日、勝手にkillされて泣きを見た:sob:

32
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
24