悲観的ロックとは?
悲観的ロックは、トランザクションが変更しようとする行に対して読み取り時にロックを取得し、他のトランザクションがそれらを並行して変更するのを防ぎます。競合が起こりやすいと想定し、発生する前に阻止します。ロックは、トランザクションがコミットまたはロールバックするまで保持されます。
なぜ重要か
事前にロックすることで、競合の激しいワークロードでロストアップデートが起きないことを保証しますが、並行性を下げ、デッドロックのリスクを伴います。競合が頻繁で再試行のコストが高い場合に適した選択です。
関連ガイド
What Is Optimistic Locking?Optimistic locking detects conflicting updates at commit time by checking a version field, rather than holdin…
What Is a Database Deadlock?A database deadlock occurs when two transactions each hold a lock the other needs, so neither can proceed unt…
What Is a Transaction Isolation Level?An isolation level sets how much one transaction can see of others in progress, trading consistency guarantee…