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

Zusammenfassung der Anwendungsbereiche von Kubernetes

Kubernetes ist aufgrund seiner Anwendungsportabil...

So stellen Sie MySQL-Master und -Slave in Docker bereit

Bild herunterladen Auswählen eines MySQL-Images D...

dh Filtersammlung

Der IE hat uns in der frühen Entwicklungsphase Ko...

Detaillierte Schritte zur Installation von Docker in 5 Minuten

Für die Installation von Docker auf CentOS muss d...

Detaillierte Erklärung des strikten Modus in JavaScript

Inhaltsverzeichnis Einführung Verwenden des strik...

Erweiterte Docker-Methode zur schnellen Erweiterung

1. Befehlsmethode Führen Sie den Nginx-Dienst im ...

Webdesign-Kenntnisse: Problem der adaptiven Höhe von Iframes

Manche Leute sind vielleicht noch nicht auf dieses...

So legen Sie den Standardwert für den Datums-/Uhrzeittyp in MySQL fest

Beim Ändern des Standarddatums-/Uhrzeitwerts über...

MySQLs Methode zum Umgang mit doppelten Daten (Verhindern und Löschen)

Einige MySQL-Tabellen können doppelte Datensätze ...

Beispiel für eine Routing-Berechtigungsverwaltungsmethode in Vue2/vue3

1. Es gibt im Allgemeinen zwei Methoden zur Steue...