Verwerf locks in een consistente globale volgorde, houd transacties kort, verlaag isolatie waar het veilig is, en retry de verliezer wanneer een deadlock toch optreedt. Een deadlock is een cyclus: transactie A houdt row 1 en wacht op row 2, terwijl B row 2 houdt en op row 1 wacht — geen van beide kan verder, dus de DB doodt er een.
De cyclus die je moet doorbreken
Tx A Tx B
houdt row 1 ──── wacht ────▶ row 2 (gehouden door B)
▲ │
│ wacht │ houdt
└────────── row 1 ◀────────────┘
(cyclus = deadlock; DB abort één slachtoffer)
