Read it later.

Web製作に関するサーバ構成やコーディングネタの備忘録として使ってます。

*

[MySQL]プロセスの確認と、プロセスの強制終了

   

ストプロ内でのどのSQLが実行されているかもプロセスを見れば分かる

MySQL内で、いま実行中のプロセスを確認することができます。

どういったSQL文が実行されているかとか、
どのSQL文がいま待ち状態になっているかとも分かるので、結構便利。

実行されているSQL文に関してはその実行時間(単位:秒)も把握することができます。

/* プロセスの確認(SQLが100文字以上だとカットされて表示される) */
SHOW PROCESSLIST;

↑上記実行結果の出力例が↓

> SHOW PROCESSLIST;
+---------+---------+-----------+----------------+---------+------+-------+------------------+
| Id      | User    | Host      | db       | Command | Time | State | Info             |
+---------+---------+-----------+----------------+---------+------+-------+------------------+
| 1712960 | root    | localhost | h67t3xy4 | Sleep   |  367 |       | NULL             |
| 1714084 | root    | localhost | h67t3xy4 | Query   |    0 | NULL  | show processlist |
| 1727586 | postfix | localhost | postfix  | Sleep   |   94 |       | NULL             |
+---------+---------+-----------+----------------+---------+------+-------+------------------+
/* プロセスの確認(SQL文を全部表示=>レイアウトが崩れるから\Gつけて実行することお薦め) */
SHOW FULL PROCESSLIST \G;
> SHOW FULL PROCESSLIST \G;
*************************** 1. row ***************************
     Id: 1712960
   User: root
   Host: localhost
     db: h67t3xy4
Command: Query
   Time: 222
  State: updating
   Info: DELETE FROM hogehoge WHERE eigyou_date < '2014-10-17'
*************************** 2. row ***************************
     Id: 1714084
   User: root
   Host: localhost
     db: h67t3xy4_bssdb
Command: Query
   Time: 0
  State: NULL
   Info: show full processlist

デッドロックや重いSQL文の強制終了もプロセスIDを指定すればOK。

/* IDを指定してプロセスを強制終了 */
kill プロセス番号;

ストアド内のどのSQL文で実行時間が掛かっているのか、それが分かるようになるのは本当に大きい。

ぜひ使ってみて下さい。

 - MySQL

  関連記事

mysql
[MySQL] ランダム文字列の生成

「指定された文字の構成で、ランダムの文字列を生成する。」 よく使うのだけど、なか …

mysql
[MySQL]ストアドプロシージャをmysqldumpでダンプできない – user has insufficent privileges to SHOW CREATE PROCEDURE

データベースに対して、ALL PRIVILEGES権限を割り当てているユーザでm …

mysql
[MySQL]テーブルのカラムのコメントの変更

MySQLでカラムのコメントを変更する方法を探してみた。 結局、カラムの再定義と …

mysql
[MySQL][phpMyAdmin]Allowed memory size of XXXXXX bytes exhausted (tried to allocate XXXXXX bytes)

こんな現象がおきました phpMyAdminでデータベース全体をエクスポートした …

mysql
[MySQL]SELECT文で、FROM句を使用しないで、WHERE句を使用する

『SELECT文で、FROM句を使用しないで、WHERE句を使用する』 といった …

mysql
mysqlコマンドをコメント付きでクエリを実行する。

phpMyAdminでストアドを登録するとスクリプト内部にあるコメントも、ソース …

mysql
[MySQL]データベースごとのサイズをSQLで一発で取得する

各データベースに接続して、単体でデーターベースサイズや、各テーブルのサイズを取得 …

mysql
[MySQL]Cannot load from mysql.proc. The table is probably corrupted

mysqlのストアドプロシージャの再登録をしようとすると、下記のエラーが表示され …

mysql
[MySQL]innodbチューニング

いま携わっているプロジェクトでMySQLを使用しているのだけど、主要テーブル全て …

mysql
MySQL 権限一覧

権限 意味 ALL [PRIVILEGES] GRANT OPTION 以外の全 …