MySQLのスレッド・ロック関連のコマンドのサンプルです。
目次
サンプル | スレッド情報を表示する(Thread_) |
実行中のスレッドを表示する(show processlist) | |
スレッドを停止する(kill) | |
ロック中のテーブルを表示する(show open tables) |
スレッド情報を表示する(Thread_)
show global status like 'Thread_%'; show session status like 'Thread_%'; show status like 'Thread_%'; |
- show status は、サーバーのステータス情報を表示します。
- 「Thread_%」の指定で、「Thread_」で始まる値を表示します。
%はワイルドカード文字です。 - globalを指定すると「MySQLへの新しい接続に使用される値」を表示します。
- sessionを指定すると「現在の接続のステータス値」を表示します。
- global/sessionを指定しない場合、sessionになります。
MariaDB [(none)]> show status like 'Thread_%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Threadpool_idle_threads | 0 |
| Threadpool_threads | 2 |
| Threads_cached | 0 |
| Threads_connected | 1 |
| Threads_created | 10 |
| Threads_running | 1 |
+-------------------------+-------+
Threads_cached | キャッシュされているスレッド数 |
Threads_connected | 現在、接続しているスレッド数 |
Threads_created | 生成されたスレッド数 |
Threads_running | スリープになっていないスレッド数 |
以下は、MySQLの「SHOW STATUS 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-status.html
実行中のスレッドを表示する
show processlist; |
実行中のスレッドを表示します。
MariaDB [(none)]> show processlist;
+----+------+-----------------+------+---------+------+-------+------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+------+-----------------+------+---------+------+-------+------------------+----------+
| 91 | root | localhost:49259 | NULL | Query | 0 | init | show processlist | 0.000 |
+----+------+-----------------+------+---------+------+-------+------------------+----------+
以下は、MySQLの「SHOW PROCESSLIST 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-processlist.html
スレッドを停止する(kill)
kill 数値 |
スレッドを停止します。
数値は、show processlistコマンドを実行して表示されるIdを指定します。
MariaDB [(none)]> show processlist;
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| 51 | root | localhost:65092 | testphp | Sleep | 155 | | NULL | 0.000 |
| 78 | root | localhost:49221 | NULL | Query | 0 | init | show processlist | 0.000 |
| 81 | root | localhost:49225 | testphp | Sleep | 4 | | NULL | 0.000 |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
3 rows in set (0.00 sec)
MariaDB [(none)]> kill 51;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show processlist;
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| 78 | root | localhost:49221 | NULL | Query | 0 | init | show processlist | 0.000 |
| 81 | root | localhost:49225 | testphp | Sleep | 36 | | NULL | 0.000 |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
2 rows in set (0.00 sec)
11行目は、Idの51を指定しています。
ロック中のテーブルを表示する(show open tables)
show open tables; |
- テーブルの一覧表示とロック中のテーブルを表示します。
- 項目のIn_useは、テーブルに対するロックの要求数です。
0の場合ロックされていません。
1以上の場合ロックされています。 - 項目のName_lockedは、テーブルの削除や名前の変更などのDDL操作でテーブル名がロックされているかどうかを表します。
0の場合ロックされていません。
1以上の場合ロックされています。
MariaDB [(none)]> show open tables;
+------------+---------------------------+--------+-------------+
| Database | Table | In_use | Name_locked |
+------------+---------------------------+--------+-------------+
| phpmyadmin | pma__table_uiprefs | 0 | 0 |
| mysql | servers | 0 | 0 |
| phpmyadmin | pma__users | 0 | 0 |
| mysql | procs_priv | 0 | 0 |
| mysql | plugin | 0 | 0 |
| phpmyadmin | pma__column_info | 0 | 0 |
| testblog | tokuten | 0 | 0 |
| testblog | syouhin | 0 | 0 |
以下は、MySQLの「SHOW OPEN TABLES 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-open-tables.html
関連の記事