In breve: MySQL Error 1205 Lock wait timeout: Errore 1205 indica che una transazione ha atteso un lock oltre innodb_lock_wait_timeout.
MySQL Error 1205 Lock wait timeout: che cosa significa
Errore 1205 indica che una transazione ha atteso un lock oltre innodb_lock_wait_timeout. La query bloccante e la durata della transazione sono più importanti dell’aumento del timeout.
Procedura dettagliata
L’ errore MySQL 1205 “Lock wait timeout exceeded” compare quando un’istruzione InnoDB attende troppo a lungo un lock detenuto da un’altra transazione. Normalmente viene annullata l’istruzione che ha superato il timeout, non automaticamente l’intera transazione; l’applicazione deve quindi gestire correttamente rollback e stato della sessione.
Aumentare innodb_lock_wait_timeout raramente è il primo intervento corretto. Bisogna identificare la transazione che blocca, capire perché resta aperta e ridurre la durata o l’ampiezza del lavoro.
Un processo può eseguire una modifica e attendere input, chiamate esterne o altre elaborazioni prima del commit. Durante questo intervallo mantiene lock che bloccano richieste concorrenti.
Un UPDATE o DELETE che esamina molte righe può acquisire più lock del necessario. Verifica il piano di esecuzione prima di aggiungere indici o modificare la query.
Importazioni, sincronizzazioni e job che modificano migliaia di righe in una sola transazione aumentano il tempo durante il quale i lock restano attivi.
Checkout, code, inventario, cron e webhook possono aggiornare contemporaneamente lo stesso insieme di record. Il problema può essere intermittente e comparire soltanto durante i picchi.
Guide Xlogic correlate
- MySQL Error 1406: Data too long for column
- MySQL Error 1114: The table is full
- MySQL Error 1045: Access denied for user