dポイントプレゼントキャンペーン実施中!

データベースでのロック処理に関する初歩的な質問です。
とあるテーブルのとある行をSELECTして、しかる演算処理の後に同じテーブルにUPDATEするときには、ロック処理が必要であることは理解できるのですが、
単純に独自のデータをテーブルにINSERTする場合、ロック処理は必要なのでしょうか?
このテーブルには頻繁にユーザーがアクセスしてSELECTもUPDATEも走っている状態です。

A 回答 (2件)

RDBMSにより、同時実行でDB破壊などが起きないように排他制御されるので、それ以上のロックが必要か否かは利用者側の要件によります。


例えば、特定の期間は、特定の表に対し、他ユーザによる更新を禁止したいとか、参照さえも禁止したいとか。
また、多量更新があり、他ユーザと同時実行させるより、LOCK TABLEしてシリアライズした方がいい場合もあります。
    • good
    • 1
この回答へのお礼

ありがとうございました。
とても参考になりました。

お礼日時:2010/02/26 09:45

経験的には・・・



プライマリーキーがautoincrementで管理されて、特殊なユニーク
管理をしていないのであればinsertにはロックは不要です。
どちらかといえば参照側のトランザクションの問題でしょう
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
勉強させていただきました。

お礼日時:2010/02/26 09:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す