Acquire lock ตามลำดับ global ที่สอดคล้องกัน, ทำ transaction ให้สั้น, ลด isolation ที่ปลอดภัยได้ และ retry ผู้แพ้เมื่อ deadlock ยังเกิดขึ้น deadlock คือวงจร: transaction A ถือ row 1 และรอ row 2 ขณะที่ B ถือ row 2 และรอ row 1 — ไม่มีใครไปต่อได้ ดังนั้น DB จึงฆ่าตัวหนึ่ง
วงจรที่คุณต้องทำลาย
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
