• ベストアンサー

INSERTにおいてロック処理は必要か

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

RDBMSにより、同時実行でDB破壊などが起きないように排他制御されるので、それ以上のロックが必要か否かは利用者側の要件によります。 例えば、特定の期間は、特定の表に対し、他ユーザによる更新を禁止したいとか、参照さえも禁止したいとか。 また、多量更新があり、他ユーザと同時実行させるより、LOCK TABLEしてシリアライズした方がいい場合もあります。

osama_vin_ladin
質問者

お礼

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

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

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

osama_vin_ladin
質問者

お礼

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

関連するQ&A