Ursache
Der Standardwert von 16 MB für die Einstellung MySQL max_allowed_packets
ist nicht groß genug für Ihre Anforderungen.
Lösung
-
Identifizieren Sie Abfragen, bei denen die einzelnen Zeilen das aktuelle
max_allowed_packet
überschreiten. Solche Abfragen müssen neu geschrieben werden, um die Menge der zurückgegebenen Daten zu reduzieren. Dies kann durch eine kleinere Anzahl von Spalten in derSELECT
-Anweisung oder durch Auswahl eines kleineren Datentyps für verschiedene Spalten als Teil des Tabellendesigns erfolgen. Wenn Sie über ein New Relic-Konto verfügen, verwenden Sie die Seite New Relic APM-Fehler und die Seite New Relic APM-Datenbanken und New Relic-, um nach den entsprechenden Abfragen zu suchen. -
Zur schnellen Behebung können Sie beim eines Tickets vorübergehend eine Erhöhung der
max_allowed_packet
anfordern Dies liegt jedoch im Ermessen des Customer Engineering-Teams, da eine zu große Menge eines Werts zu Replikationsfehlern führen kann, da dies zu Netzwerkengpässen führt. -
Als Best Practice sollten Sie den folgenden Befehl in Ihrer CLI für einige Ihrer großen Datenbanktabellen ausführen:
show table status like [table name to match]
Werten Sie die Abfragen aus, die für diese Tabellen ausgeführt werden, um festzustellen, ob Sie die empfohlene
max_allowed_packet
von 16 MB überschreiten. Führen Sie denselben Prozess in Schritt 1 aus, um die von solchen Abfragen zurückgegebenen Daten zu reduzieren.