Einführung Durch Aktivieren des Slow Query Log kann MySQL Abfrageanweisungen aufzeichnen, die die angegebene Zeit überschreiten. Durch das Auffinden und Analysieren von Leistungsengpässen lässt sich die Leistung des Datenbanksystems besser optimieren. 1. Konfigurieren Sie langsame Abfragen 1. Parameterbeschreibung
2. Zeigen Sie Parameter für langsame Abfragen an Variablen wie „slow_query%“ anzeigen; +-----------------------------------------+----------------------------------+ | Variablenname | Wert | +-----------------------------------------+----------------------------------+ | slow_query_log | AUS | | slow_query_log_datei | /mysql/data/localhost-slow.log | +-----------------------------------------+----------------------------------+ Variablen wie „long_query_time“ anzeigen; +-----------------+------------+ | Variablenname | Wert | +-----------------+------------+ | lange Abfragezeit | 10.000000 | +-----------------+------------+ 3. Konfigurieren Sie langsame Abfragen Es gibt zwei Konfigurationsmethoden: eine ist die globale Variablenkonfiguration und die andere ist die Konfiguration mit einer Konfigurationsdatei (1) Globale Variablenkonfiguration --Setzen Sie die globale Variable slow_query_log auf den Status „ON“ set global slow_query_log='ON'; --Legen Sie den Speicherort fest, an dem das Protokoll für langsame Abfragen gespeichert wird. Setzen Sie global slow_query_log_file='/usr/local/mysql/data/slow.log'; --Aufzeichnen, wenn die Abfrage 1 Sekunde überschreitet, global long_query_time=1 setzen; (2) Ändern Sie die Konfigurationsdatei my.cnf (unter Linux-Umgebung). slow_query_log = EIN slow_query_log_file = /usr/local/mysql/data/slow.log lange_Abfragezeit = 1 Zusammenfassen: 2. mysqldumpslow-Tool mysqldumpslow ist ein Tool, das mit MySQL geliefert wird. Damit müssen wir nicht in der obigen Protokolldatei danach suchen. Wenn es sich um normale Daten handelt, ist das Überprüfen des Protokolls ebenfalls eine mühsame Aufgabe. 1. Hauptbefehle --s: gibt die Sortiermethode an--c: Anzahl der Besuche--l: Sperrzeit--r: zurückgegebene Datensätze--t: Abfragezeit--al: durchschnittliche Sperrzeit--ar: durchschnittliche Anzahl zurückgegebener Datensätze--at: durchschnittliche Abfragezeit--t: wie viele Datensätze werden vorne zurückgegeben--g: gefolgt von einem regulären Übereinstimmungsmuster, ohne Berücksichtigung der Groß-/Kleinschreibung 2. Beispiele --1. Holen Sie sich die 10 SQL-Anweisungen, die die meisten Datensätze zurückgeben mysqldumpslow -s -r -t 10 /logs/mysql-slow.log --2. Holen Sie sich die Top 10 SQLs mit der höchsten Anzahl an Besuchen mysqldumpslow -s -c -t 10 /logs/mysql-slow.log --3. Holen Sie sich die ersten 10 Abfrageanweisungen mit Links, sortiert nach Zeit mysqldumpslow -st -t 10 -g "left join" /logs/mysql-slow.log --4. Darüber hinaus wird empfohlen, bei der Verwendung dieser Befehle | und mehr zu verwenden, da sonst der Bildschirm explodieren kann. mysqldumpslow -sr -t 10 /logs/mysql-slow.log | mehr 3. Profil anzeigen Profile anzeigen wurde nach 5.0.37 hinzugefügt. Um diese Funktion zu verwenden, stellen Sie sicher, dass die Version höher als 5.0.37 ist. 1. Profil anzeigen aktivieren Variablen wie „Profiling“ anzeigen;--Die Standardeinstellung ist geschlossen+---------------+----------+ | Variablenname | Wert | +---------------+-------+ | Profilierung | AUS | +---------------+-------+ --enable setzt Profiling auf 1; 2. Führen Sie den angegebenen SQL Ich führe hier ein paar SQL-Anweisungen aus und führe dann Profile anzeigen; - listet alle während dieser Öffnungsperiode ausgeführten SQL-Anweisungen mit der angehängten Abfrage-ID auf. +----------+------------+----------------------------+ | Abfrage-ID | Dauer | Abfrage | +----------+------------+----------------------------+ | 1 | 0,00168025 | wähle * aus vhr.employee | | 2 | 0,06573200 | wähle * aus vhr.hr | +----------+------------+----------------------------+ --Wir können zwei Anweisungen sehen, die die letzten Vorgänge zeigen. Die Listengröße wird durch die Sitzungsvariable „profile_history_size“ gesteuert. Der Standardwert ist 15 und der Maximalwert ist 100. 3. Diagnose spezifischer SQL zeige Profil-CPU, Block-IO für QueryID -- entspricht QueryID in 2 CPU-PROFIL FÜR ABFRAGE 1 ANZEIGEN;--Frage die spezifischen Informationen der Abfrage-ID 1 ab+----------------------+----------+----------+-------------+ | Status | Dauer | CPU_Benutzer | CPU_System | +----------------------+----------+----------+---------+ | beginnt | 0,000194 | 0,000000 | 0,000000 | | Berechtigungen werden geprüft | 0,000012 | 0,000000 | 0,000000 | | Tabellen öffnen | 0,000030 | 0,000000 | 0,000000 | | init | 0,000053 | 0,000000 | 0,000000 | | Systemsperre | 0,000011 | 0,000000 | 0,000000 | | optimieren | 0,000003 | 0,000000 | 0,000000 | | Statistik | 0,000014 | 0,000000 | 0,000000 | | wird vorbereitet | 0,000010 | 0,000000 | 0,000000 | | wird ausgeführt | 0,000001 | 0,000000 | 0,000000 | | Daten werden gesendet | 0,001213 | 0,000000 | 0,000000 | | Ende | 0,000014 | 0,000000 | 0,000000 | | Abfrageende | 0,000012 | 0,000000 | 0,000000 | | Tabellen schließen | 0,000019 | 0,000000 | 0,000000 | | Elemente freigeben | 0,000070 | 0,000000 | 0,000000 | | aufräumen | 0,000025 | 0,000000 | 0,000000 | +----------------------+----------+----------+---------+ Schlussfolgerungen, die in der täglichen Entwicklung beachtet werden müssen: 1 Konvertieren von HEAP in MyISAM: Die Abfrageergebnisse sind zu groß, um in den Speicher zu passen, daher werden sie auf die Festplatte verschoben. Hinweis: Wenn einer oder mehrere der oben genannten Punkte auftreten, bedeutet dies, dass die SQL-Anweisung optimiert werden muss. Das Obige ist ein Beispiel, das die Details langsamer MySQL-Abfragen erläutert. Weitere Informationen zu langsamen MySQL-Abfragen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: js zur Realisierung einer einfachen Warenkorbfunktion
>>: Einführung in verschiedene Möglichkeiten zur Einführung von CSS in HTML
Fabric.js ist ein sehr nützliches Plug-In für Can...
Benutzergruppen Unter Linux muss jeder Benutzer e...
Dieser Artikel beschreibt anhand eines Beispiels,...
Ohne weitere Umschweife sind dies diese drei Meth...
Installieren Sie die entpackte Version der MySql-...
MySQL5.6 So erstellen Sie SSL-Dateien Offizielle ...
Inhaltsverzeichnis 1. Lvs-Einführung 2. Lvs-Lasta...
Linux-Grep-Befehl Mit dem Linux-Befehl grep könne...
ZeicheneffekteImplementierungscode JavaScript var...
Welches dieser Formate (GIF, PNG oder JPG) sollte...
Lassen Sie uns die Funktion von Taobao nachahmen,...
Systemumgebung: centos7.4 1. Prüfen Sie, ob die D...
In diesem Artikel finden Sie den spezifischen Cod...
transformieren und übersetzen Transformieren bezi...
Ich habe vor Kurzem angefangen, das NestJs-Framew...