MySQL Slow Query Logs: Detaillierte Anleitung 2023

Veröffentlicht: 2023-08-01
Auf sozialen Profilen teilen.

Der Artikel ist eine prägnante und dennoch umfassende Ressource, die ein klares Verständnis der langsamen MySQL-Abfrageprotokolle und deren effektive Interpretation vermitteln soll. Ziel dieses Leitfadens ist es, die Komplexität langsamer Abfrageprotokolle zu entschlüsseln und es Benutzern zu ermöglichen, Leistungsengpässe und potenzielle Datenbankprobleme zu erkennen und zu beheben.

Die Aktivierung des Slow Query Log für MySQL erweist sich als wertvolle Hilfe bei der Diagnose von Leistungs- und Effizienzproblemen, die sich auf Ihren Server auswirken können. Durch die Ermittlung von Abfragen mit besonders langsamen Ausführungszeiten erhalten Sie die Möglichkeit, diese effektiv zu bewältigen, indem Sie entweder die für die Abfragen verantwortliche Anwendung umstrukturieren oder die Abfragen selbst optimieren. Dieser proaktive Ansatz stellt sicher, dass Ihre Abfragen mit optimaler Effizienz erstellt werden, was letztendlich zu einer verbesserten Gesamtsystemleistung führt.

Inhaltsverzeichnis

Einführung in MySQL

MySQL ist eines der beliebtesten relationalen Open-Source-Datenbankverwaltungssysteme, das häufig zum Speichern, Verwalten und Abrufen von Daten für verschiedene Webanwendungen und Software verwendet wird. Wie jedes hochentwickelte Datenbanksystem bietet MySQL einen robusten Protokollierungsmechanismus, um wichtige Informationen über seine Aktivitäten und Leistung aufzuzeichnen. Diese Protokolle spielen eine entscheidende Rolle bei der Überwachung und Fehlerbehebung des Datenbankverhaltens und können wertvolle Einblicke in den Zustand und die Effizienz des Systems liefern.

Arten von Protokollen, die von MySQL generiert werden

Es gibt verschiedene Arten von Protokollen, die von MySQL generiert werden und jeweils einem bestimmten Zweck dienen:

  1. Allgemeines Abfrageprotokoll : Dieses Protokoll zeichnet jede auf dem Server ausgeführte SQL-Abfrage auf, unabhängig von ihrer Quelle. Es ist ein leistungsstarkes Tool zum Debuggen und Verstehen der Reihenfolge der ausgeführten Abfragen, kann aber auch große Datenmengen generieren, wodurch es sich hauptsächlich für kurzfristige Diagnosen eignet.
  2. Fehlerprotokoll: Das Fehlerprotokoll erfasst alle Fehler, die während des Betriebs des MySQL-Servers aufgetreten sind. Zu diesen Fehlern können Probleme beim Starten, Herunterfahren oder andere kritische Fehler gehören, die die Funktionalität der Datenbank beeinträchtigen können. Durch die Überwachung des Fehlerprotokolls können Administratoren potenzielle Probleme schnell erkennen und beheben.
  3. Protokoll langsamer Abfragen: Wie bereits erwähnt, zeichnet das Protokoll langsamer Abfragen Abfragen auf, deren Ausführung länger als ein vordefinierter Schwellenwert dauert. Dieses Protokoll trägt entscheidend dazu bei, Leistungsengpässe und ineffiziente Abfragen zu erkennen und ermöglicht es Administratoren, die Gesamtleistung der Datenbank zu optimieren und zu verbessern.
  4. Binärprotokoll: Das Binärprotokoll enthält eine Aufzeichnung aller an der Datenbank vorgenommenen Datenänderungen (Einfügungen, Aktualisierungen und Löschungen). Es wird zu Replikationszwecken verwendet und ermöglicht die Synchronisierung von Daten über mehrere MySQL-Server hinweg.
  5. Relay-Protokoll: Das Relay-Protokoll ist spezifisch für die MySQL-Replikation. Es speichert vom Master-Server empfangene Daten, bevor sie in einem Replikations-Setup auf dem Slave-Server ausgeführt werden.

Wie aktiviere ich das MySQL-Protokoll für langsame Abfragen?

Nachfolgend finden Sie die Schritte zum Aktivieren des langsamen Abfrageprotokolls für MySQL oder MariaDB.

  1. Zunächst müssen Sie sich mit Bitwise bei SSH anmelden . Öffnen Sie den Bitwise SSH-Client. Geben Sie Ihre Host-, Port- und Benutzernamendetails ein, wählen Sie dann das Passwort aus der Dropdown-Liste „Anfängliche Methode“ und fahren Sie fort, indem Sie auf die Schaltfläche „Anmelden“ klicken. Es erscheint ein Popup, in dem Sie aufgefordert werden, Ihr SSH-Passwort einzugeben. Geben Sie das SSH-Passwort in das dafür vorgesehene Feld ein.
Melden Sie sich mit Bitwise bei SSH an
MySQL-Protokolle für langsame Abfragen: Eine detaillierte Anleitung

2. Greifen Sie mit einem Texteditor auf die Datei /etc/mysql/my.cnf zu. Gehen Sie dazu zunächst im Bitwise SSH-Client auf „Neues SFTP-Fenster“ .

Gehen Sie vom Bitwise SSH-Client zum neuen SFTP-Fenster.

Geben Sie nun /etc in die Suchleiste der Remote-Dateien ein und drücken Sie die Eingabetaste.

Aktivieren Sie MySQL Slow Query Log

Öffnen Sie die MySQL- oder MariaDB-Datei.

Aktivieren Sie MySQL Slow Query Log

Wählen Sie nun my.cnf aus, klicken Sie mit der rechten Maustaste und klicken Sie auf Bearbeiten.

Aktivieren Sie MySQL Slow Query Log

Es erscheint ein Texteditor. Kopieren Sie die folgenden Befehle, fügen Sie sie am Ende der Datei ein und speichern Sie sie.

 slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2

3. Öffnen Sie nun das Bitwise-Terminal und führen Sie die folgenden Befehle aus, um die Datei /var/log/mysql-slow.log zu generieren und den MySQL-Benutzer als Eigentümer zuzuweisen.

 touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log

4. Um MySQL oder MariaDB neu zu starten, führen Sie den folgenden Befehl aus.

 /usr/local/cpanel/scripts/restartsrv_mysql

Lesen Sie das Protokoll langsamer MySQL-Abfragen

Greifen Sie auf die Datei zu, die die langsamen Abfrageprotokolle enthält, indem Sie Folgendes verwenden:

/var/log/mysql/mysql-slow.log

In der Protokolldatei wird jede langsame Abfrage als Eintrag protokolliert. Zu diesen Einträgen gehören in der Regel Details wie der Zeitstempel, die Ausführungszeit der Abfrage, die Anzahl der untersuchten Zeilen und die eigentliche SQL-Anweisung.

Anstatt das langsame Abfrageprotokoll direkt zu lesen, ist es häufig vorteilhafter, den Befehl „mysqldumpslow“ zu verwenden, um den Inhalt des Protokolls zu analysieren und zusammenzufassen. Sie können den Befehl wie folgt ausführen, während Sie über SSH als Root angemeldet sind:

sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log

Die folgende Ausgabe wird erhalten:

Lesen Sie das Protokoll langsamer MySQL-Abfragen

FAQs

Was ist der Zweck des mysqldumpslow-Befehls?

Der Befehl mysqldumpslow dient dazu, den Inhalt des MySQL Slow Query Log zu analysieren und zusammenzufassen. Es ermöglicht Ihnen, wertvolle Informationen aus der Protokolldatei zu extrahieren, einschließlich Details zu den am häufigsten auftretenden langsamen Abfragen und ihren jeweiligen Ausführungszeiten. Durch die Ausführung von mysqldumpslow /var/log/mysql/mysql-slow.log können Sie die langsamen Abfragen effektiv analysieren und auf effiziente Weise Erkenntnisse daraus gewinnen.

Kann ich das Slow Query Log zur Langzeitüberwachung verwenden?

Obwohl sich das Slow Query Log für kurzfristige Diagnosen als wertvoll erweist, kann die Aktivierung über längere Zeiträume dazu führen, dass ein erhebliches Datenvolumen generiert wird. Um eine langfristige Überwachung zu ermöglichen, wird empfohlen, alternative Ansätze zu erkunden, beispielsweise den Einsatz von Überwachungstools und Lösungen zur Leistungsanalyse. Dies trägt dazu bei, einen Überlauf des Protokolls mit übermäßig vielen Einträgen zu verhindern und stellt eine effektive Verwaltung der Datenbankleistung im Laufe der Zeit sicher.

Wie kann das Slow Query Log bei der Diagnose von Datenbankleistungsproblemen helfen?

Das Slow Query Log spielt eine wichtige Rolle bei der Diagnose von Datenbankleistungsproblemen, da es Abfragen mit langsamen Ausführungszeiten identifiziert. Durch die Analyse dieser langsamen Abfragen können Administratoren Leistungsengpässe und Ineffizienzen in der Datenbank genau lokalisieren. Mit diesen Informationen können sie Abfragen optimieren, Anwendungen neu strukturieren oder wesentliche Änderungen vornehmen, um die Gesamtsystemleistung erheblich zu verbessern.

Wie kann ich Abfragen basierend auf Informationen aus dem Slow Query Log optimieren?

Nachdem Sie langsame Abfragen anhand des Protokolls identifiziert haben, haben Sie die Möglichkeit, diese durch verschiedene Methoden zu optimieren. Dazu gehört das Hinzufügen geeigneter Indizes, das Umschreiben von Abfragen oder die Umstrukturierung des Datenbankschemas. Darüber hinaus kann der Einsatz von Abfrageoptimierungstechniken wie EXPLAIN und Profiling wertvolle Erkenntnisse liefern und zu erheblichen Verbesserungen der Abfrageleistung beitragen.

Gilt das Slow Query Log nur für MySQL oder kann es mit anderen Datenbanksystemen verwendet werden?

Das Slow Query Log ist ausschließlich für MySQL- und MariaDB-Datenbanksysteme konzipiert. Während andere Datenbankverwaltungssysteme möglicherweise vergleichbare Funktionen bieten, ist es wichtig zu beachten, dass das Protokollformat und die Aktivierungsmethoden zwischen verschiedenen Systemen variieren können.