Erklärung langsamer MySQL-Abfragen Das MySQL Slow Query Log ist ein Protokolltyp, der von MySQL bereitgestellt wird. 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. Der Standardwert von long_query_time ist 10, was bedeutet, dass die Anweisung länger als 10 Sekunden ausgeführt wird. Standardmäßig startet die MySQL-Datenbank das langsame Abfrageprotokoll nicht, und wir müssen diesen Parameter manuell festlegen. Wenn es für die Optimierung nicht erforderlich ist, wird es natürlich im Allgemeinen nicht empfohlen, diesen Parameter zu starten, da das Einschalten des langsamen Abfrageprotokolls mehr oder weniger gewisse Auswirkungen auf die Leistung hat. Das Slow Query Log unterstützt das Schreiben von Protokolldatensätzen in Dateien und Datenbanktabellen. Das Slow Query Log wird verwendet, um einige langsame Abfrageanweisungen aufzuzeichnen, was Administratoren bei der Analyse des Problems helfen kann. Das Protokoll ist standardmäßig nicht aktiviert und muss manuell aktiviert werden, indem eine Reihe von Parametern in der Konfigurationsdatei hinzugefügt werden. Gründe für die Aktivierung langsamer MySQL-Abfragen Datenbanken sind Orte, an denen leicht Engpässe auftreten können. NoSQL wird derzeit so heiß diskutiert, und ich schätze, jeder ist von der Datenbank frustriert. Die Anweisungen, die den größten Einfluss auf die MySQL-Geschwindigkeit haben, sind solche, deren Abfragen sehr langsam sind. Diese langsamen Anweisungen sind möglicherweise falsch geschrieben oder es handelt sich um gemeinsame Abfragen mehrerer Tabellen bei großen Datenmengen usw. Daher müssen wir diese Anweisungen finden, die Gründe analysieren und sie optimieren. Dies ist auch der Grund für die Veröffentlichung dieses Blogbeitrags So aktivieren Sie die langsame MySQL-Abfrage 1) Methode 1: Loggen Sie sich in das MySQL-Datenbankterminal ein und öffnen Sie mysql> zeige Variablen wie "%long%"; <SPAN style="COLOR: #ff00ff"> // Überprüfe die standardmäßige langsame Abfragezeit von 10 Sekunden</SPAN> +-----------------+------------+ | Variablenname | Wert | +-----------------+------------+ | lange Abfragezeit | 10.000000 | +-----------------+------------+ 1 Zeile im Satz (0,00 Sek.) mysql> set global long_query_time=1; <SPAN style="COLOR: #ff00ff">//Auf 1 Sekunde einstellen, global hinzufügen, und es wird beim nächsten Aufrufen von mysql wirksam</SPAN> Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> zeige Variablen wie "%slow%"; <SPAN style="COLOR: #ff00ff"> // Überprüfen Sie, ob langsame Abfrage aktiviert ist</SPAN> +---------------------+---------------------------------+ | Variablenname | Wert | +---------------------+---------------------------------+ | log_slow_queries | AUS | | langsame Startzeit | 2 | | slow_query_log | AUS | | slow_query_log_datei | /usr/local/mysql/mysql-slow.log | +---------------------+---------------------------------+ 4 Zeilen im Satz (0,00 Sek.) mysql> set slow_query_log='ON'; <SPAN style="COLOR: #ff00ff"> //Global hinzufügen, sonst wird ein Fehler gemeldet</SPAN> FEHLER 1229 (HY000): Die Variable „slow_query_log“ ist eine GLOBALE Variable und sollte mit SET GLOBAL gesetzt werden. mysql> set global slow_query_log='ON'; <SPAN style="COLOR: #ff00ff">//Wenn Sie diesen Parameter auf ON setzen, werden langsame Abfragen aktiviert, die SQL-Anweisungen erfassen können, deren Ausführungszeit einen bestimmten Wert überschreitet. </SPAN> Abfrage OK, 0 Zeilen betroffen (0,28 Sek.) mysql> zeige Variablen wie "%slow%"; <SPAN style="COLOR: #ff00ff">//Überprüfen Sie, ob es aktiviert ist</SPAN> +---------------------+---------------------------------+ | Variablenname | Wert | +---------------------+---------------------------------+ | log_slow_queries | EIN | | langsame Startzeit | 2 | | slow_query_log | EIN | | slow_query_log_datei | /usr/local/mysql/mysql-slow.log | +---------------------+---------------------------------+ 4 Zeilen im Satz (0,00 Sek.) Methode 2: Ändern Sie die MySQL-Konfigurationsdatei my.cnf [root@www ~]# vim /etc/mysql.cnf slow_query_log = 1 //Öffnen Sie das langsame Abfrageprotokoll. Sie können 1 auch auf ON ändern. Analyse-Tools Das Analysetool analysiert tatsächlich die in mysql-slow.log aufgezeichneten Daten und zeigt sie an (tatsächlich können Sie auch ein Shell-Skript schreiben, um die erforderlichen Informationen zu extrahieren). [root@www ~]# cat mysql-slow.log //Befehle anzeigen /usr/local/mysql/libexec/mysqld, Version: 5.1.26-rc-log (Quelldistribution). gestartet mit: TCP-Port: 3306 Unix-Socket: /tmp/mysql.sock Zeit-ID-Befehlsargument # Zeit: 100814 13:28:30 # Benutzer@Host: root[root] @ localhost [] # Abfragezeit: 10,096500 Sperrzeit: 0,045791 Gesendete Zeilen: 1 Untersuchte Zeilen: 2374192 SET-Zeitstempel=1281763710; Wählen Sie die Anzahl (eindeutiger Anzeigencode) als x aus dem Anzeigenbesuchsverlauf, wobei der Anzeigencode in (Wählen Sie den Anzeigencode aus der Anzeigenliste, wobei die Medien-ID = 15 ist); # Zeit: 100814 13:37:02 # Benutzer@Host: root[root] @ localhost [] # Abfragezeit: 10,394134 Sperrzeit: 0,000091 Gesendete Zeilen: 1 Untersuchte Zeilen: 2374192 SET-Zeitstempel=1281764222; Wählen Sie die Anzahl (eindeutiger Anzeigencode) als x aus dem Anzeigenbesuchsverlauf, wobei der Anzeigencode in (Wählen Sie den Anzeigencode aus der Anzeigenliste, wobei die Medien-ID = 15 ist); # Zeit: 100814 13:37:16 # Benutzer@Host: root[root] @ localhost [] # Abfragezeit: 4,608920 Sperrzeit: 0,000078 Gesendete Zeilen: 1 Untersuchte Zeilen: 1260544 SET-Zeitstempel=1281764236; Wählen Sie count(*) als cou aus ad_visit_history, wobei ad_code in (wählen Sie ad_code aus ad_list, wobei id=41) sortieren nach ID absteigend; Wie Sie sehen, wird lediglich der Ausführungsstatus von SQL-Anweisungen aufgezeichnet, einschließlich Ausführungszeit, Sperrzeit usw. Ob Sie also Analysetools verwenden, hängt von Ihrer persönlichen Situation ab. Es gibt viele Analysetools. Hier werde ich nur über die Verwendung von mysqldumpslow sprechen, einem Tool zur Analyse langsamer Abfragen, das mit MySQL geliefert wird. [root@www ~]# mysqldumpslow -h Option h erfordert ein Argument FEHLER: falsche Option 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 //Fehlerprüfung -s ORDER, wonach sortiert werden soll (t, at, l, al, r, ar usw.), „at“ ist Standard //Sortiermethode: Abfragezeiten, Zeit, Sperrzeit und Anzahl der zurückgegebenen Datensätze -r kehrt die Sortierreihenfolge um (größte zuletzt statt zuerst) //Umgekehrte Sortierung -t NUM zeigt nur die obersten n Abfragen //Zeigt die obersten N Abfragen -a abstrahiert nicht alle Zahlen zu N und Zeichenfolgen zu „S“ -n NUM abstrakte Zahlen mit mindestens n Ziffern in den Namen //Abstrakte Zahlen, mindestens n Ziffern im Namen -g PATTERN grep: nur Anweisungen berücksichtigen, die diesen String enthalten //Konfigurationsmodus -h HOSTNAME Hostname des Datenbankservers für *-slow.log Dateiname (kann ein Platzhalter sein), //MySQL-Computername oder IP Der Standardwert ist '*', d. h. alle -i NAME Name der Serverinstanz (bei Verwendung des Startskripts mysql.server) -l Sperrzeit nicht von Gesamtzeit abziehen //Sperrzeit nicht von Gesamtzeit abziehen Beispiele: [root@BlackGhost bin]# ./mysqldumpslow -sr -t 20 /var/lib/mysql/mysql-slow.log [root@BlackGhost bin]# ./mysqldumpslow -sr -t 20 -g 'Anzahl' /var/lib/mysql/mysql-slow.log Die obige Zusammenfassung der langsamen MySQL-Abfragevorgänge ist alles, was ich mit Ihnen teilen möchte. Ich hoffe, sie kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: JavaScript ermittelt, ob der Browser IE ist
>>: Praktischer grundlegender Beispielcode für den Linux-Befehl sed
1. CSS3-Dreieck vergrößert weiterhin Spezialeffek...
Übergeordnete Datei importiere React, { useState ...
1. Laden Sie das Installationspaket von der offiz...
In letzter Zeit verwendet das Projekt Kubernetes ...
Inhaltsverzeichnis Einführung Ideen Erstellen ein...
Inhaltsverzeichnis 1. Vorschau der Schnittstellen...
Quellcode-Vorschau: https://github.com/jdf2e/nutu...
Dieser Artikel veranschaulicht anhand von Beispie...
MySql öffnet regelmäßig ein MySQLInstallerConsole...
Inhaltsverzeichnis Beschreibung der Installations...
1. Javascript kehrt zur vorherigen Seite zurück hi...
Inhaltsverzeichnis Vorwort Anwendung Zusammenfass...
Wenn Sie DApps auf Ethereum entwickelt haben, hab...
https-Basisport 443. Er wird für etwas verwendet,...
Vorwort Bei der Entwicklung tatsächlicher Projekt...