Startseite » 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 in die Datenbank gelangt. Dies ist sowohl für Programmierer als auch für Datenbankadministratoren äußerst hilfreich, um die von einer Anwendung generierten Abfragen genau zu untersuchen.

    Nachdem ich regelmäßig auf MySQL umgestiegen war, wollte ich zunächst herausfinden, wie ich es machen sollte. Wie können Sie sonst den von WordPress oder phpBB generierten SQL-Code sehen??

    Als erstes müssen wir die Protokollierung von Abfragen in MySQL aktivieren. Seien Sie gewarnt, dass dies nur in der Entwicklung geschehen sollte… Es wird wirklich langsamer, wenn Sie jede einzelne Abfrage in einer Datei protokollieren.

    Suchen und öffnen Sie Ihre MySQL-Konfigurationsdatei (normalerweise /etc/mysql/my.cnf auf Ubuntu). Suchen Sie nach dem Abschnitt "Protokollierung und Replikation".

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

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

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

    sudo /etc/init.d/mysql neu starten

    Nun können wir mit dem Überwachen der Abfragen beginnen, sobald sie eingehen. Öffnen Sie ein neues Terminal, und führen Sie diesen Befehl aus, um die Protokolldatei zu scrollen und gegebenenfalls den Pfad anzupassen.

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

    Führen Sie jetzt Ihre Anwendung aus. Sie sehen, dass die Datenbankabfragen in Ihrem Terminalfenster vorbeifliegen. (Stellen Sie sicher, dass auf dem Terminal Bildlauf und Verlauf aktiviert sind.)

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