【MySQL】テーブルのロック状態の確認とロック・解除方法


ここではMySQLでテーブルのロック状態の確認とロック・解除方法を紹介しています。

テーブルのロック状態を確認する方法

テーブルのロック状態を確認するには、innodb_lock_waitsを確認することでロックされている状態を取得できます。

SELECT * FROM sys.innodb_lock_waits;

テーブルのロック

テーブルをロックするには、LOCK TABLES文を使います。

LOCK TABLEES テーブル名1[as 別名1] ロックの種類1
             [,テーブル名2[as 別名2] ロックの種類2]
; 

・ロックの種類
 READ:データの読み込みのみ可能な状態、変更は出来ない
 READ LOCAL:セッション内でのみREADロック
 WRITE:ロックかけたスレッド以外は一切の操作が出来ない
 LOW_PRIORITY WRITE:READとWRITEが競合した場合にREADを優先

テーブルのロック解除

テーブルをロック解除するには、UNLOCK TABLES文を使います。

UNLOCK TABLES;