MySQL スレッド・ロック関連のコマンド

MySQLのスレッド・ロック関連のコマンドのサンプルです。

目次

サンプル スレッド情報を表示する
  実行中のスレッドを表示する
  スレッドを停止する
  ロック中のテーブルを表示する

スレッド情報を表示する

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 数値

スレッドを停止します。
数値は、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;
  • テーブルの一覧表示とロック中のテーブルを表示します。
  • 項目の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

関連の記事

MySQL コマンドの一覧

△上に戻る