Adquiere los locks en un orden global consistente, mantén las transacciones cortas, baja el nivel de isolation donde sea seguro, y reintenta al perdedor cuando aún así ocurra un deadlock. Un deadlock es un ciclo: la transacción A mantiene la fila 1 y espera la fila 2, mientras B mantiene la fila 2 y espera la fila 1 — ninguna puede avanzar, así que la DB mata a una.
El ciclo que debes romper
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
