Ambil lock dalam urutan global yang konsisten, jaga transaksi tetap pendek, turunkan isolation di mana aman, dan retry pihak yang kalah ketika deadlock tetap terjadi. Sebuah deadlock adalah siklus: transaksi A menahan baris 1 dan menunggu baris 2, sementara B menahan baris 2 dan menunggu baris 1 — tidak ada yang bisa lanjut, jadi DB membunuh salah satu.
Siklus yang harus Anda putus
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
