[pgsql-jp: 37824] Re: UPDATE が集中するとデッドロックが発生する

maya maya @ negeta.com
2006年 12月 20日 (水) 10:51:18 JST


maya です。

教えていただいたことを、下記のようにまとめました。

複数行をまとめて update するときには、内部的に行ロックがかかる。
select ... order by hoge for update を使っても、行ロックの順序は
基本的に保証されない。したがって、並列に処理される場合にはデッド
ロックが発生する可能性がある。確実に更新するには
1. 1行ずつ update する
2. table lock をかける
のどちらかを選択する必要がある。
前者は行数が多いと処理が遅くなり、後者は並列性が落ちるので、実際に
更新する行数との兼ね合いでどちらかを選択する。

ありがとうございました。


-- 
| maya <maya @ negeta.com> |



pgsql-jp メーリングリストの案内