MySQLでスレッドの実行状況を表示しスレッドの経過時間チェックや特定スレッドを強制終了する方法
2024/02/22
データベースサーバが重たく、原因を調査する機会があった。サーバ自体のメモリやCPUなどの性能は良く、またリソースも大分あまっている状態だった。また、データベースサーバへのメモリ割当量も多いという状況。
なのでサーバの性能云々よりもスレッド状況が気になった。以下で調べられる。
SQL文
SHOW [FULL] PROCESSLIST
FULLをつけるとSQL全文が、つけないと100文字までSQL文が表示される。
必要そうなカラム
Id
接続識別子。以下で強制終了する事が可能。
kill Id
Time
スレッドの経過時間。データベースサーバが重たくなっている時はここの数値が大きいものが原因の場合が多そう。
関連記事
-
-
MySQLでWhere句をつけてdumpファイルを出力する方法
MySQLであるテーブルからWhere句をつけて、絞った結果をダンプさせたかった ...
-
-
MySQLのREGEXPで半角記号を検索したい場合の対応方法
MySQLのREGEXPで半角記号を検索したい場合\\を付けてエスケープしないと ...
-
-
MySQLで全国の市区町村のデータを入手し、抽出する方法
都道府県と市区町村が連携したセレクトメニューを作成したかった。具体的には大阪府を ...
-
-
MySQLでCSVから列を指定してインポート
MySQLでCSVからデータをインポートしたかった。またエクセル風にいうA列はi ...
-
-
PHP / MySQLで2038年問題の対策
先日打ち合わせの際に「タイムスタンプを使ってユニークキーに云々~~」といったよう ...