Získávejte zámky v konzistentním globálním pořadí, držte transakce krátké, snižte isolation tam, kde je to bezpečné, a retryujte poraženého, když deadlock přesto nastane. Deadlock je cyklus: transakce A drží řádek 1 a čeká na řádek 2, zatímco B drží řádek 2 a čeká na řádek 1 — ani jedna nemůže pokračovat, takže DB jednu zabije.
Cyklus, který musíte přerušit
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
