Un deadlock richiede di analizzare le transazioni coinvolte e gestire un nuovo tentativo completo, limitato e sicuro.

Possibili cause
- Transazione lunga non chiusa
- Query che aggiorna molte righe senza indice efficace
- Transazioni che acquisiscono lock in ordine differente
- Processo in attesa di una risorsa applicativa
Cosa controllare
- Leggere ultimo deadlock e stato InnoDB
- Identificare sessioni e transazioni aperte
- Analizzare execution plan e indici
- Correlare query con job e richieste applicative
- Misurare durata delle transazioni
Come intervenire
- Ridurre durata e ampiezza delle transazioni
- Aggiungere indici verificati dal piano di esecuzione
- Acquisire risorse in ordine coerente
- Ritentare l’intera transazione annullata con un limite di tentativi e protezione contro effetti esterni duplicati
- Non aumentare il timeout senza rimuovere la causa

Guide Xlogic correlate
- MySQL error 1049 dopo migrazione: Unknown database
- MySQL error 1142 in phpMyAdmin: Command denied to user
- MySQL error 1062: Duplicate entry for key