TL;DR
-
FLUSH TABLES WITH READ LOCK
は「今まさに実行中のクエリ」と競合する- メタデータロックと違って「生きているトランザクション」ではなくて「今まさに実行中のクエリ」とだけ
-
WITH READ LOCK
という名前ではあれどFLUSH TABLES
なのでSELECT
とも競合する
-
FLUSH TABLES WITH READ LOCK
は先に全体にGLOBAL read lock
を置いてから1つずつテーブルをFLUSH
する -
FLUSH TABLES WITH READ LOCK
をタイムアウトさせてもセッションを閉じない限りFLUSH待ちロック
は解放されない
FLUSH TABLES WITH READ LOCK
は実行中のクエリと競合する。
t1, t2, …