Log für Abfragen
Für das Logging von SQL-Abfragen können auf einem MySQL-Server verschiedene Optionen verwendet werden. Zum einen gibt es ein allgemeines Log von allen Abfragen und eines für langsame Abfragen.
Standardmäßig ist das Log von Abfragen deaktiviert. Das Log der Abfragen kostet Performance, wenn also ein Server sowieso schon stark ausgelastet ist, sollte das Log nur bei Bedarf aktiviert werden.
Alle Abfragen
Um alle Abfragen zu erfassen, können die folgenden SQL Befehle verwendet werden.
SET GLOBAL general_log = 'OFF';
SET GLOBAL general_log_file = '/pfad/zum/log/dateiname.log';
SET GLOBAL general_log = 'ON';
Wichtig ist hierbei, dass der Pfad der Logdatei nur angepasst werden kann, wenn das Log deaktiviert wird. Somit wird pauschal das Log erstmal deaktiviert, der Pfad geändert und dann aktiviert.
Die Änderungen werden ohne Neustart des Servers direkt angewendet.
Um das Log wieder zu deaktivieren, einfach nur die 1. Zeile ausführen.
Anschließend kann das Log über die angegebene Log-Datei eingesehen werden.
Langsame Abfragen
Um nur langsame Abfragen zu erfassen, können die folgenden SQL Befehle verwendet werden. Der Vorteil hierbei ist, dass der Performance Verlust und der Speicherplatzverbrauch geringer ist. Auch die Übersicht wird verbesser, da nur wirklich relevante Abfragen protokolliert werden, aus Sicht der Performancesteigerung.
SET GLOBAL slow_query_log = 'OFF';
SET GLOBAL slow_query_log_file = '/pfad/zum/log/dateiname.log';
SET GLOBAL slow_query_time = 5;
SET GLOBAL slow_query_log = 'ON';
3 Zeilen sollten von den Befehlen für das allgemeine Log bekannt sein, sie sind nur etwas anders benannt (slow_query). Neu ist der Parameter für die Zeit, ab wann ein Befehl als langsam gilt. Je nach Umgebung können einige Sekunden ggf. normal sein, in anderen wäre alles über 0.5s langsam. Die Zahl gibt die Zeit in Sekunden an, also wäre 1 gleich 1 Sekunde, auch Bruchteile sind zulässig, wie z. B. 0.25 für eine Viertelsekunde.
Keine Kommentare