2011年5月26日

[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) と競合でデッドロック */


投稿者 xml-rpc : 2011年5月26日 20:28
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/104049
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。