mysql:15599
From: <gotou1213@xxxxxxxxxx>
Date: Thu, 26 May 2011 20:28:20 +0900
Subject: [mysql 15599] Re: SELECT MAX 〜 FOR UPDATE と INSERT でデッドロック
後藤です。 自己レスですが、色々試してみたところ、下記の様な状態になって デッドロックしているのかなと思いました。 [A] BEGIN; [B] BEGIN; [A] SELECT * FROM xx WHERE id = 2 LOCK IN SHARE MODE; [B] SELECT * FROM xx WHERE id = 2 LOCK IN SHARE MODE; /* (1) */ [A] SELECT * FROM xx WHERE id = 1 FOR UPDATE; /* (2) */ [B] SELECT * FROM xx WHERE id = 1 FOR UPDATE; /* (2) と競合でロック解放待ち */ [A] INSERT INTO xx VALUES(2); /* (1) と競合でデッドロック */
15596 2011-05-26 15:55 [<gotou1213@xxxxxxxxx] SELECT MAX 〜 FOR UPDATE と INSERT でデッドロック 15597 2011-05-26 17:38 ┗[KOJIMA Takanori <tak] 15598 2011-05-26 20:19 ┗[<gotou1213@xxxxxxxxx] -> 15599 2011-05-26 20:28 ┗[<gotou1213@xxxxxxxxx]