ここでは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;