Causa
Il valore predefinito di 16 MB per l'impostazione MySQL max_allowed_packets
non è sufficientemente grande per le tue esigenze.
Soluzione
-
Identifica le query in cui le singole righe superano il limite
max_allowed_packet
corrente. Tali query devono essere riscritte per ridurre la quantità di dati restituiti. Per eseguire l'operazione, è possibile ridurre il numero di colonne nell'istruzioneSELECT
oppure scegliere un tipo di dati più piccolo per varie colonne come parte della struttura della tabella. Se si dispone di un account New Relic, utilizzare la pagina Errori APM di New Relic e la pagina Database APM di New Relic e i registri New Relic per cercare le query rilevanti. -
Per una correzione rapida, è possibile richiedere temporaneamente un aumento delle dimensioni di
max_allowed_packet
quando si invia un ticket, a discrezione del team di progettazione clienti, poiché un valore troppo grande può causare errori di replica causando congestione della rete. -
Come best practice, è consigliabile eseguire il comando seguente nella CLI per alcune tabelle di database di grandi dimensioni:
show table status like [table name to match]
Valutare le query in esecuzione su queste tabelle per determinare se si supera la dimensione
max_allowed_packet
consigliata di 16 MB. Segui lo stesso processo nel passaggio 1 per ridurre i dati restituiti da tali query.