Umfassendes Verständnis des MySQL-Protokolls für langsame Abfragen

Umfassendes Verständnis des MySQL-Protokolls für langsame Abfragen

Was ist das Protokoll langsamer Abfragen?

Das MySQL Slow Query Log ist ein von MySQL bereitgestellter Protokolldatensatz. Es wird verwendet, um Anweisungen in MySQL aufzuzeichnen, deren Antwortzeit den Schwellenwert überschreitet. Insbesondere werden SQL-Anweisungen, deren Ausführungszeit den Wert „long_query_time“ überschreitet, im Slow Query Log aufgezeichnet.

Insbesondere werden SQL-Anweisungen, die länger als der „long_query_time“-Wert dauern, im Protokoll für langsame Abfragen aufgezeichnet. Der Standardwert von long_query_time ist 10, was bedeutet, dass die Anweisung länger als 10 Sekunden ausgeführt wird.

Damit wird überprüft, welche SQL-Anweisungen unsere maximale Toleranzzeit überschreiten. Wenn beispielsweise die Ausführung einer SQL-Anweisung länger als 5 Sekunden dauert, betrachten wir sie als langsame SQL-Anweisung. Wir hoffen, SQL-Anweisungen zu sammeln, die länger als 5 Sekunden dauern, und basierend auf der vorherigen Erklärung eine umfassende Analyse durchzuführen.

Standardmäßig ist das Protokoll für langsame Abfragen in der MySQL-Datenbank nicht aktiviert, daher müssen wir diesen Parameter manuell festlegen. Wenn es für die Optimierung nicht erforderlich ist, ist es natürlich im Allgemeinen nicht empfehlenswert, diesen Parameter zu aktivieren, da die Aktivierung langsamer Abfrageprotokolle mehr oder weniger gewisse Auswirkungen auf die Leistung hat. Das langsame Abfrageprotokoll unterstützt das Schreiben von Protokolldatensätzen in Dateien!

So aktivieren Sie langsame Abfragen

Überprüfen Sie den offenen Status

VARIABLEN WIE '%slow_query_log%' ANZEIGEN

Langsame Abfrage aktivieren

setze global slow_query_log = 1

Verwenden Sie „set global_slow_query_log = 1“, um das Protokoll für langsame Abfragen zu aktivieren, das nur für die aktuelle Datenbank gilt und ungültig wird, wenn MySQL neu gestartet wird.

Wenn Sie es dauerhaft machen möchten, müssen Sie die Konfigurationsdatei my.cnf ändern (dasselbe gilt für andere Systemvariablen). Ändern Sie die Datei my.cnf und fügen Sie Parameter unter [mysqld] hinzu oder ändern Sie sie.

Starten Sie dann den MySQL-Server neu. Die folgenden zwei Zeilen werden in der Datei my.cnf konfiguriert

slow_query_log = 1

slow_query_log_file=/var/lib/mysql/tim-slow.log

Der Parameter slow_query_log_file für langsame Abfragen gibt den Speicherpfad der Protokolldatei für langsame Abfragen an. Das System gibt standardmäßig eine Standarddatei host_name-slow.log an (wenn der Parameter slow_query_log_file nicht angegeben ist).

Welche Art von SQL wird also in der langsamen Abfrage aufgezeichnet, nachdem das Protokoll für langsame Abfragen aktiviert wurde?

Verwenden Sie Show-Variablen wie „long_query_time%“, um die Standardzeitdauer in Sekunden anzuzeigen:

Ebenso können Sie Befehle verwenden, um es zu ändern oder in my.cnf zu konfigurieren. Wenn die Ausführungszeit genau der long_query_time entspricht, wird sie nicht aufgezeichnet. Das heißt, im MySQL-Quellcode wird es als größer als long_query_time beurteilt, nicht als größer oder gleich!

So legen Sie den Protokollierungsschwellenwert fest:

setze global long_query_time=3;

Ebenso können Sie Befehle verwenden, um es zu ändern oder in my.cnf zu konfigurieren. Wenn die Ausführungszeit genau der long_query_time entspricht, wird sie nicht aufgezeichnet. Das heißt, im MySQL-Quellcode wird es als größer als long_query_time beurteilt, nicht als größer oder gleich!

So legen Sie den Protokollierungsschwellenwert fest:

setze global long_query_time=3;

Eingestellt, aber es sind keine Änderungen aufgetreten? Warum? Zu diesem Zeitpunkt müssen Sie eine Sitzung neu starten:

Als Nächstes führen wir eine langsamere Abfrage durch, wie unten gezeigt. Denken Sie jedoch daran, sie in der Konfigurationsdatei wie folgt zu konfigurieren:

Gehen Sie dann zur Protokolldatei, um zu überprüfen, welche SQL-Anweisungen den Schwellenwert überschreiten:

Fragen Sie ab, wie viele langsame Abfragedatensätze im aktuellen System vorhanden sind:

Meine Konfigurationsdatei aufzeichnen

langsames_Abfrageprotokoll=1;
slow_query_log_file=/var/lib/mysql/tim-slow.log;
lange_Abfragezeit=3;
log_output=DATEI

Protokollanalysetool mysqldumpshow

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 mysqldumpshow

  • 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: wie viele Datensätze werden zurückgegeben
  • g: gefolgt von einem regulären passenden Muster, ohne Berücksichtigung der Groß-/Kleinschreibung

Hier ist ein Anwendungsbeispiel:

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

mysqldumpslow -sr -t 10 /var/lib/mysql/tim-slowlog

Holen Sie sich die 10 wichtigsten SQL-Abfragen

mysqldumpslow -s ct 10 /var/lib/mysql/tim-slow log

Holen Sie sich die ersten 10 nach Zeit sortierten Elemente, die Left-Join-Abfrageanweisungen enthalten

mysqldumpslow -st -t 10 -g "linker Join" /var/lib/mysql/tim-slowlog

Es wird auch empfohlen, diese Befehle in Kombination mit weiteren zu verwenden, da sonst der Bildschirm explodieren kann.

mysqldumpslow -sr -t 10 /var/lib/mysq/tim-slow.log | mehr

Oben finden Sie detaillierte Informationen zum umfassenden Verständnis des MySQL Slow Query Log. Weitere Informationen zum MySQL Slow Query Log finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So aktivieren Sie das langsame Abfrageprotokoll im Docker-MySQL-Container
  • Lösung zur Optimierung langsamer MySQL-Abfragen
  • Detailliertes Beispiel zum Auffinden und Optimieren langsamer SQL-Abfragen in MySQL
  • MySQL-Optimierungslösung: Aktivieren Sie das Protokoll für langsame Abfragen
  • Gründe, warum MySQL-Abfragen langsam sind
  • Zusammenfassung des Wissens zu langsamen MySQL-Protokollen
  • Fallstricke bei langsamen MySQL-Abfragen
  • So finden Sie schnell langsames SQL in MySQL

<<:  Der Browser der Betaversion IE9 unterstützt HTML5/CSS3

>>:  JavaScript zur Implementierung der Schaltfläche „Zurück nach oben“

Artikel empfehlen

Beispielcode zur Implementierung sechseckiger Rahmen mit CSS3

Die äußerste BoxF dreht sich um 120 Grad, die zwe...

Zusammenfassung gängiger SQL-Anweisungen in MySQL

1. MySQL-Exportdatei: SELECT `pe2e_user_to_compan...

Zabbix überwacht den Prozess der Linux-Systemdienste

Zabbix erkennt automatisch Regeln zur Überwachung...

Einführung und Analyse von drei Binlog-Formaten in MySQL

eins. Einführung in das Mysql Binlog-Format Das M...

Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)

Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...

Vue verwendet die Element-el-upload-Komponente, um auf die Grube zu treten

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

Beispiel für die Konvertierung von Webpack-Bildern in Base64

URL-Loader herunterladen yarn add -D URL-Lader Mo...

Vue einfache Implementierung einer Plattenspielerlotterie

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

Implementierungsprozess von row_number in MySQL

1. Hintergrund Im Allgemeinen können wir in einer...

DIV-Hintergrund, halbtransparenter Text, nicht durchscheinender Stil

Der DIV-Hintergrund ist halbtransparent, aber die ...

So umbrechen Sie das HTML-Titelattribut

Als ich vor ein paar Tagen ein Programm schrieb, w...