Salta al contenuto

MySQL Error 1206: total number of locks exceeds lock table size

Pubblicato il Aggiornato il

In breve: MySQL Error 1206 lock table size — indica che la transazione richiede più lock di quelli sostenibili dalla memoria o dalla struttura disponibile.

MySQL Error 1206 lock table size: significato

Le prime ipotesi da verificare per “MySQL Error 1206 lock table size” sono transazione lunga non chiusa; query che aggiorna molte righe senza indice efficace.

MySQL Error 1206 lock table size: sintomo, causa e verifica
MySQL Error 1206: total number of locks exceeds lock table size: sintomo, causa probabile e criterio di verifica.

Sintomi e cause probabili

Sintomi da verificare

  • Il messaggio “MySQL Error 1206 lock table size” compare durante un’operazione ripetibile.
  • La funzione coinvolta in MySQL e MariaDB non raggiunge il risultato previsto.
  • Il log dell’area MySQL e MariaDB registra un evento nello stesso minuto della prova.
  • Il comportamento osservato in MySQL e MariaDB cambia in base a utente, rete, file o configurazione.

Cause probabili

  • 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

Diagnosi passo per passo

  1. Leggere ultimo deadlock e stato InnoDB
  2. Identificare sessioni e transazioni aperte
  3. Analizzare execution plan e indici
  4. Correlare query con job e richieste applicative
  5. Misurare durata delle transazioni

Log e dati da controllare

  • log MySQL o MariaDB
  • phpMyAdmin o client SQL
  • error_log dell’applicazione chiamante

Correzioni sicure

  1. Ridurre durata e ampiezza delle transazioni
  2. Aggiungere indici verificati dal piano di esecuzione
  3. Acquisire risorse in ordine coerente
  4. Implementare retry limitato per deadlock
  5. Non aumentare il timeout senza rimuovere la causa
MySQL Error 1206 lock table size: passaggi diagnostici e correzioni
MySQL Error 1206: total number of locks exceeds lock table size: sequenza diagnostica e verifica dopo la correzione.

Verifica finale

  • La query termina con il risultato previsto
  • Schema e vincoli restano coerenti
  • Non compaiono nuovi warning o lock
  • L’applicazione legge e scrive i dati correttamente

Errori da evitare

  • Non disattivare globalmente WAF, ModSecurity, antispam o verifica TLS per aggirare il sintomo
  • Non impostare permessi 777 e non cambiare proprietari in modo ricorsivo senza conoscere la struttura dell’account
  • Non cancellare database, chiavi Redis, cache o file di sistema senza backup e senza aver identificato l’oggetto coinvolto
  • Non ripetere pagamenti, import o webhook reali finché non hai verificato l’idempotenza

Guide Xlogic correlate

Fonti tecniche

Domande frequenti

Che cosa significa “MySQL Error 1206 lock table size”?

MySQL Error 1206 lock table size — indica che la transazione richiede più lock di quelli sostenibili dalla memoria o dalla struttura disponibile.

Da cosa può dipendere “MySQL Error 1206 lock table size”?

Le cause da verificare per “MySQL Error 1206 lock table size” sono: transazione lunga non chiusa; query che aggiorna molte righe senza indice efficace; transazioni che acquisiscono lock in ordine differente.

Quali controlli eseguire per “MySQL Error 1206 lock table size”?

Per diagnosticare “MySQL Error 1206 lock table size”, controlla nell’ordine: leggere ultimo deadlock e stato InnoDB; identificare sessioni e transazioni aperte; analizzare execution plan e indici. La soluzione è confermata quando la query termina con il risultato previsto; schema e vincoli restano coerenti.

MySQL Error 1206: total number of locks exceeds lock table size ultima modifica: 2026-08-03T15:16:03+02:00 da Team tecnico Xlogic

Ti è piaciuto questo Post?