×
データベース

悲観的排他制御は、データ更新の衝突が頻繁に起こることを想定し、データを取得する段階で事前にロックをかける手法です。他のトランザクションによる更新を確実に防ぐことができますが、待機時間が増え、システム全体のパフォーマンスが低下する可能性があります。一方、楽観的排他制御は、データの衝突がめったに起こらないと想定し、データを読み込む時点ではロックをかけず、更新を実行する直前に他者によってデータが変更されていないかを確認する手法です。データ内に「バージョン番号」や「最終更新日時」を保持し、読み込み時と更新時で値が変化していないかを判定します。もし他者に変更されていた場合はエラーとし、処理をロールバック(取り消し)します。この手法はロックの保有期間が短いため、パフォーマンス向上に寄与します。