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
Wenn Sie Navicat direkt für die Verbindung über I...
Inhaltsverzeichnis Datenvolumen des Docker-Contai...
Docker-Daemon-Socket Der Docker-Daemon kann über ...
Inhaltsverzeichnis Vorwort 1. MySQL Master-Slave-...
Ich habe vor langer Zeit eine virtuelle Maschine ...
Derzeit gibt es drei Möglichkeiten, die Mitte ein...
Detaillierte Erklärung des Linux-Befehls vi Der v...
Überblick Ein Index ist eine vom DBMS basierend a...
mysqlbinlog-Version anzeigen mysqlbinlog -V [--ve...
Ich habe im ersten Halbjahr des letzten Jahres an...
Vorwort Wie wir alle wissen, gehört HTML5 dem Wor...
Lesetipp: Navicat12.1 Serie Cracking und Aktivier...
Inhaltsverzeichnis 1. JavaScript-Probleme 2. Vort...
Inhaltsverzeichnis Vorwort 1. Die Bedeutung der K...
1. Einführung in das Geschäftsszenario Angenommen...