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

Detaillierte Erklärung zur Verwendung des <meta>-Tags in HTML

Wenn wir möchten, dass mehr Leute die von uns ers...

So reduzieren Sie die Bildgröße mithilfe des mehrstufigen Docker-Builds

In diesem Artikel wird beschrieben, wie Sie die m...

Detaillierte Erklärung zum MySQL-Index

Inhaltsverzeichnis 1. Index-Grundlagen 1.1 Einlei...

Verwendung des if-Urteils in HTML

Während der Django-Webentwicklung wird beim Schre...

Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

1. Langsames Abfrageprotokoll 1.1 MySQL-Protokoll...

Oberflächliches Webdesign

<br />Ich war schon immer der Meinung, dass ...

Die konkrete Umsetzung des JavaScript-exklusiven Denkens

Im vorherigen Blog hat Xiao Xiong die Methoden ve...

9 superpraktische CSS-Tipps, die Designern und Entwicklern helfen

Im Kopf eines Webdesigners muss viel Wissen im Zus...

Erste Schritte mit Mysql - SQL-Ausführungsprozess

Inhaltsverzeichnis 1. Prozess 2. Kernarchitektur ...

Ein tiefes Verständnis der spitzen Klammern in Bash (für Anfänger)

Vorwort Bash verfügt über viele wichtige integrie...

Welche Schleife ist in JavaScript die schnellste?

Wenn wir wissen, welche For-Schleife oder welcher...

Grafisches Tutorial zur Installation von Linux CentOS6.9 unter VMware

Als technischer Neuling zeichne ich den Vorgang d...