MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen

MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen

Vorwort

Diese Lösung eignet sich nur für kleine Projekte, Projekte, die nicht online sind, oder für Notfälle. Sobald die langsame Protokollabfrage aktiviert ist, erhöht sich der Druck auf die Datenbank. Daher wird im Allgemeinen der Hintergrund verwendet, um die Datenbetriebszeit in die Protokolldatei zu schreiben, und das Protokoll wird regelmäßig jede Woche gelöscht.

MySQL-Optimierungsplan: Aktivieren Sie das Protokoll für langsame Abfragen (die Ausführung der SQL-Abfrage dauert länger als eine Sekunde usw.).

Protokollierung langsamer Abfragen aktivieren: MySQL kann Abfrageanweisungen aufzeichnen, die die angegebene Zeit überschreiten. Durch das Auffinden und Analysieren von Leistungsengpässen kann die Leistung des Datenbanksystems besser optimiert werden.

Parameterbeschreibung:

slow_query_log Status der Aktivierung langsamer Abfragen, ON zum Aktivieren, OFF zum Deaktivieren

slow_query_log_file Der Speicherort, an dem das langsame Abfrageprotokoll gespeichert wird (dieses Verzeichnis erfordert Schreibberechtigungen für das laufende MySQL-Konto und ist im Allgemeinen auf das MySQL-Datenspeicherverzeichnis eingestellt)

long_query_time Wie viele Sekunden dauert es, bis eine Abfrage aufgezeichnet wird?

Wichtige Punkte: Die Slow-Log-Version muss höher sein, niedrigere Versionen können dies nicht unterstützen. Diese Version ist: 5.7.20

SELECT VERSION(); Versionsnummer abfragen

In dieser Version ist das langsame Protokoll standardmäßig aktiviert.

mysql> Datenbanken anzeigen;

mysql> use test; //Eine Datenbank angebenmysql> Variablen wie „slow_query%“ anzeigen;
+-----------------------------------------+----------------------------------+
| Variablenname | Wert |
+-----------------+------------+
| slow_query_log | EIN |
+-----------------+------------+
| slow_query_log_file | YH-20161209QIZC-slow.log |
+-----------------+------------+
mysql> Variablen wie „long_query_time“ anzeigen;
+-----------------+------------+
| Variablenname | Wert |
+-----------------+------------+
| lange Abfragezeit | 10.000000 |
+-----------------+------------+

//Standardmäßig wird die Abfrage nur aufgezeichnet, wenn sie länger als 10 Sekunden dauert

Einrichten der Protokollierung langsamer Abfragen

Methode 1: Globale Variableneinstellungen (diese Methode schlägt fehl, wenn die Datenbank neu gestartet wird und neu konfiguriert werden muss)

Setzen Sie die globale Variable slow_query_log auf den Status „ON“

mysql> globales slow_query_log='ON' festlegen;

Legen Sie den Speicherort für das Protokoll langsamer Abfragen fest.

mysql> setze global slow_query_log_file='/usr/local/mysql/data/slow.log'; //linux
mysql> setze global slow_query_log_file='D:\\mysq\data\slow.log'; //Windows

Legt fest, dass die Abfrage protokolliert wird, wenn sie länger als 1 Sekunde dauert (sollte der Befehl einmal nicht funktionieren, könnt ihr das aus- und wieder einschalten)

mysql> globale long_query_time=1 festlegen;

Methode 2: Konfigurationsdateieinstellungen (Serverneustart hat keine Auswirkungen)

Ändern Sie die Konfigurationsdatei my.cnf und fügen Sie unter [mysqld] Folgendes hinzu:

[mysqld]
slow_query_log = EIN
slow_query_log_file = /usr/local/mysql/data/slow.log //linux
lange_Abfragezeit = 1

3. Starten Sie den MySQL-Dienst neu

Dienst MySQL Neustart

prüfen

1. Führen Sie eine langsame SQL-Abfrage aus

mysql> wähle sleep(2);

2. Überprüfen Sie, ob langsame Abfrageprotokolle generiert werden

Hier können Sie die SQL- und Abfragezeit sehen

Wenn das Protokoll vorhanden ist, wurde die MySQL-Einstellung für langsame Abfragen erfolgreich aktiviert!

Anhang: Loganalysetool mysqldumpslow

Wenn Sie in einer Produktionsumgebung Protokolle manuell analysieren und SQL finden und analysieren möchten, ist dies offensichtlich eine manuelle Aufgabe. MySQL bietet ein Protokollanalysetool namens mysqldumpslow

Sehen Sie sich die Hilfeinformationen für mysqldumpslow an:

[root@DB-Server ~]# mysqldumpslow --help

Verwendung: mysqldumpslow [ OPTS... ] [ LOGS... ]

 

Analysieren und fassen Sie das MySQL-Protokoll für langsame Abfragen zusammen. Optionen sind

 

  --verbose ausführlich

  --debug debug

  --help schreibt diesen Text in die Standardausgabe

 

  -v ausführlich

  -d debug

  -s ORDER, wonach sortiert werden soll (al, at, ar, c, l, r, t), 'at' ist Standard

                al: durchschnittliche Sperrzeit

                ar: Durchschnittlich gesendete Zeilen

                at: durchschnittliche Abfragezeit

                 c: Anzahl

                 l: Sperrzeit

                 r: gesendete Zeilen

                 t: Abfragezeit  

  -r Sortierreihenfolge umkehren (größtes zuletzt statt zuerst)

  -t NUM zeigt nur die Top-n-Abfragen an

  -a abstrahiere nicht alle Zahlen zu N und Strings zu 'S'

  -n NUM abstrakte Zahlen mit mindestens n Ziffern innerhalb der Namen

  -g PATTERN grep: nur Anweisungen berücksichtigen, die diesen String enthalten

  -h HOSTNAME Hostname des Datenbankservers für *-slow.log Dateiname (kann ein Platzhalter sein),

               Der Standardwert ist '*', d. h. alle

  -i NAME Name der Serverinstanz (bei Verwendung des Startskripts mysql.server)

  -l Sperrzeit nicht von Gesamtzeit abziehen

-s gibt die Sortiermethode an.

  • c: Anzahl der Besuche
  • l: Sperrzeit
  • r: Datensätze zurückgeben
  • t: Abfragezeit
  • al: Durchschnittliche Sperrzeit
  • ar: durchschnittliche Anzahl der zurückgegebenen Datensätze
  • at: durchschnittliche Abfragezeit

-t, was „oberste n“ bedeutet, gibt an, wie viele Datensätze zurückgegeben werden.

-g, gefolgt von einem passenden Muster für einen regulären Ausdruck, ohne Berücksichtigung der Groß-/Kleinschreibung;

Zum Beispiel

Holen Sie sich die 10 wichtigsten SQL-Anweisungen, die die meisten Datensätze zurückgeben.

mysqldumpslow -sr -t 10 /database/mysql/mysql06_slow.log

Holen Sie sich die 10 am häufigsten besuchten SQLs

mysqldumpslow -sc -t 10 /database/mysql/mysql06_slow.log

Holen Sie sich die ersten 10 Abfrageanweisungen mit Left Joins, sortiert nach Zeit.

mysqldumpslow -st -t 10 -g "linker Join" /database/mysql/mysql06_slow.log

Es wird außerdem empfohlen, diese Befehle in Kombination mit | und mehr zu verwenden, da sonst möglicherweise der Bildschirm aktualisiert wird.

mysqldumpslow -sr -t 20 /mysqldata/mysql/mysql06-slow.log | mehr

Zusammenfassen

Dies ist das Ende dieses Artikels über die MySQL-Optimierungslösung zum Aktivieren des langsamen Abfrageprotokolls. Weitere relevante Inhalte zum Aktivieren des langsamen Abfrageprotokolls von MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • MySQL-Optimierung und Indexanalyse
  • 19 gängige und effektive Methoden zur MySQL-Optimierung (empfohlen!)
  • MySQL-Optimierung: Verwendung von Index Merge
  • Eine sehr detaillierte Zusammenfassung von 21 MySQL-Optimierungspraktiken, die es wert sind, gesammelt zu werden
  • Hilft Ihnen, MySQL schnell zu optimieren
  • Geben Sie einige einfache Tipps zur MySQL-Optimierung weiter

<<:  Ein Beispiel für die Verwendung eines Lvs+Nginx-Clusters zum Erstellen einer Architektur mit hoher Parallelität

>>:  Responsive Layout-Zusammenfassung (empfohlen)

Artikel empfehlen

mysql charset=utf8 verstehen Sie wirklich, was es bedeutet

1. Schauen wir uns zunächst eine Anweisung zur Ta...

CSS-Implementierungscode für die Textausrichtung

Beim Erstellen von Formularen kommt es häufig vor...

Implementierung des Whack-a-Mole-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

Javascript implementiert einfache Navigationsleiste

In diesem Artikel wird der spezifische Code von J...

Feste Tabellenbreite table-layout: fest

Damit die Tabelle den Bildschirm (den verbleibende...

MySQL 5.6.37 (zip) Download Installationskonfiguration Grafik-Tutorial

In diesem Artikel finden Sie das Download-, Insta...

Klassen in TypeScript

Inhaltsverzeichnis 1. Übersicht 2. Definieren Sie...

Teilen Sie 8 sehr nützliche CSS-Entwicklungstools

CSS3-Mustergalerie Diese CSS3-Musterbibliothek ze...

Schritte zum Bereitstellen eines Docker-Projekts in IDEA

Mittlerweile werden die meisten Projekte auf Dock...

MySQL-Datenbankterminal – allgemeine Befehlscodes für Vorgänge

Inhaltsverzeichnis 1. Benutzer hinzufügen 2. Ände...