Ta lås i en konsekvent global ordning, håll transaktioner korta, sänk isolering där det är säkert, och omförsök förloraren när en deadlock ändå inträffar. En deadlock är en cykel: transaktion A håller rad 1 och väntar på rad 2, medan B håller rad 2 och väntar på rad 1 — ingen kan gå vidare, så DB:n dödar den ena.
Cykeln du måste bryta
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
