Ich bin ziemlich überrascht, dass ich weder auf der Website noch in der MySQL-Dokumentation eine Antwort darauf finden kann ( Abschnitt 5.2 scheint die Protokollierung ansonsten gut abgedeckt zu haben!).
Wenn ich Binlogs aktiviere, wird (subjektiv) ein kleiner Leistungseinbruch angezeigt, der mit einem kleinen zusätzlichen E / A zu erwarten ist. Wenn ich jedoch ein allgemeines Abfrageprotokoll aktiviere, wird ein enormer Leistungseinbruch angezeigt (doppelte Zeit zum Ausführen von Abfragen). oder schlimmer), weit über das hinaus, was ich mit Binlogs sehe. Natürlich protokolliere ich jetzt jedes SELECT sowie jedes UPDATE / INSERT, aber andere Daemons zeichnen jede Anfrage (Apache, Exim) auf, ohne anzuhalten.
Sehe ich nur die Auswirkungen der Nähe zu einem "Wendepunkt" der Leistung, wenn es um E / A geht, oder ist das Protokollieren von Abfragen etwas grundlegend Schwieriges, das dies verursacht? Ich würde gerne in der Lage sein, alle Abfragen zu protokollieren, um die Entwicklung zu vereinfachen, aber ich kann die Art von Hardware nicht rechtfertigen, die wir benötigen, um die Leistung bei der allgemeinen Anmeldung von Abfragen wiederherzustellen.
Ich protokolliere natürlich langsame Abfragen, und es gibt eine vernachlässigbare Verbesserung der allgemeinen Verwendung, wenn ich dies deaktiviere.
(All dies ist unter Ubuntu 10.04 LTS, MySQLd 5.1.49, aber die Forschung legt nahe, dass dies ein ziemlich universelles Problem ist.)
quelle
Um die bereitgestellte Antwort zu ergänzen , wird auch ein Leistungseinbruch angezeigt, wenn Sie sich auf demselben Gerät anmelden, auf dem sich Ihre MySQL-Datenspeicher befinden. Wenn es sich um dieselbe Festplatte handelt, werden Sie an mehreren Speicherorten lesen und schreiben die ganze Zeit, verlangsamt den gesamten Prozess.
Dies gilt auch dann, wenn es sich um eine andere Partition auf derselben physischen Festplatte handelt.
Wenn die Protokollierung auf einem anderen Gerät erfolgt, sollten einige Leistungsprobleme behoben werden.
quelle