[pgsql-jp: 26642] Re: 会員登録の重複

Yoshitake Shinohara yoshi @ yyn.jp
2002年 7月 10日 (水) 01:29:57 JST


よしたけ@YYNです。

> 会員テーブルにinsertする前に、POSTされたemailと会員テーブルemailの
> 重複チェックを行っているので、複数回POSTされても2回目以降はエラーで
> 登録できないようになっています。

良く考えて頂ければ解ると思いますが、単に上記の方法では対策になって
いません。
1回目と2回目がほぼ同時(というか非常に短い時間(ns単位とか))にPostさ
れた場合を考えてみてください。

1回目Post
2回目Post
select email...(1回目分)
select email...(2回目分)
insert email...(1回目分)
insert email...(2回目分)

といった流れになります。
DBやWebサーバの負荷が高い場合は、このような事は良く起こると思います。
このため、1回目の処理が終るまで、2回目の処理を待っていなさい!という
のが、ロックです。
近藤さんもおっしゃってたとおり、ロックされている間はテーブルを参照で
きませんので、その分DBが重くなると言う事になります。

------------------------
YYN partnership company
Yoshitake Shinohara
yoshi @ yyn.jp



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