Connect with us

Wie man

Überwachen Sie alle SQL-Abfragen in MySQL

Überwachen Sie alle SQL-Abfragen in MySQL

Microsoft SQL Server verfügt über ein Tool namens Profiler, mit dem Sie jede SQL-Abfrage überwachen können, die auf die Datenbank trifft. Dies ist sowohl für Programmierer als auch für Datenbankadministratoren äußerst nützlich, um die genauen Abfragen zu beheben, die von einer Anwendung generiert werden.

Nachdem ich häufig auf MySQL umgestellt hatte, war dies eines der ersten Dinge, die ich herausfinden wollte, wie es geht. Wie sonst können Sie den tatsächlichen SQL-Code sehen, der von WordPress oder phpBB generiert wird?

Als erstes müssen wir die Protokollierung von Abfragen in MySQL aktivieren. Seien Sie gewarnt, dass dies nur in der Entwicklung erfolgen sollte. Es verlangsamt die Arbeit, jede einzelne Abfrage in einer Datei zu protokollieren.

Suchen und öffnen Sie Ihre MySQL-Konfigurationsdatei, normalerweise /etc/mysql/my.cnf unter Ubuntu. Suchen Sie nach dem Abschnitt «Protokollierung und Replikation».

#
# * Protokollierung und Replikation
#
# Beide Positionen werden durch den Cronjob gedreht.
# Beachten Sie, dass dieser Protokolltyp ein Leistungskiller ist.

log = /var/log/mysql/mysql.log

Kommentieren Sie einfach die Variable «log» aus, um die Protokollierung zu aktivieren. Starten Sie MySQL mit diesem Befehl neu:

sudo /etc/init.d/mysql Neustart

Jetzt können wir mit der Überwachung der eingehenden Abfragen beginnen. Öffnen Sie ein neues Terminal und führen Sie diesen Befehl aus, um durch die Protokolldatei zu scrollen und gegebenenfalls den Pfad anzupassen.

tail -f /var/log/mysql/mysql.log

Führen Sie nun Ihre Anwendung aus. In Ihrem Terminalfenster werden die Datenbankabfragen angezeigt. (Stellen Sie sicher, dass das Scrollen und der Verlauf auf dem Terminal aktiviert sind.)

Ich bin beeindruckt, phpbb3 hat ziemlich engen, optimierten SQL-Code. WordPress hingegen ist sehr ineffizient.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia