MySQLでスレッドの実行状況を表示しスレッドの経過時間チェックや特定スレッドを強制終了する方法
2024/02/22
データベースサーバが重たく、原因を調査する機会があった。サーバ自体のメモリやCPUなどの性能は良く、またリソースも大分あまっている状態だった。また、データベースサーバへのメモリ割当量も多いという状況。
なのでサーバの性能云々よりもスレッド状況が気になった。以下で調べられる。
SQL文
SHOW [FULL] PROCESSLIST
FULLをつけるとSQL全文が、つけないと100文字までSQL文が表示される。
必要そうなカラム
Id
接続識別子。以下で強制終了する事が可能。
kill Id
Time
スレッドの経過時間。データベースサーバが重たくなっている時はここの数値が大きいものが原因の場合が多そう。
関連記事
-
-
mysqlで正規化できない時はシリアライズ使う
アンケートか何かに機能追加している際、配列を カンマ区切りで結合して文字列でDB ...
-
-
PHPからMySQLにシリアライズしたデータを格納
アンケートフォームみたいなのがあって、 今後も定期開催し、尚且つ質問内容は増減す ...
-
-
MySQLのtinyintのカラムにbool値を入れた場合
他所のシステムに携わることがあり中身を色々見ているとMySQLでtinyint( ...
-
-
MySQLでホスト指定しても正常に接続できない場合
MySQL自体は動いており、ユーザーも登録されているのに、ホスト名を指定しても正 ...
-
-
MySQLでwhere句を使ってカラム指定でデータをコピーする方法
MySQLで大量のデータを保存しているテーブルがあり、そのデータを絞った上で尚且 ...