Tutorial zur Verwendung von Profilen in MySQL

Tutorial zur Verwendung von Profilen in MySQL

Was ist ein Profil?

Wir können es verwenden, wenn wir die Leistung eines bestimmten SQL analysieren möchten.

Profiling ist erst nach MySQL 5.0.3 verfügbar.

Nach dem Erstellen des Profils werden sämtliche Abfragen inklusive Falschangaben protokolliert.

Schließen Sie die Sitzung oder setzen Sie „profile=0“, um sie zu schließen. (Wenn Sie den Parameter „profiling_history_size“ auf 0 setzen, wird dadurch auch die MySQL-Profilerstellung deaktiviert.)

Mit diesem Tool können Sie den SQL-Ausführungsstatus, die für die Systemsperre, die Tabellensperre usw. aufgewendete Zeit usw. abfragen.

Es ist sehr wichtig, den E/A-Verbrauch und den CPU-Verbrauch einer Anweisung zu ermitteln. (Die beiden größten Ressourcen, die bei der Ausführung von SQL-Anweisungen verbraucht werden, sind IO und CPU)

--Nach MySQL 5.7 werden Profilinformationen nach und nach aufgegeben. MySQL empfiehlt die Verwendung eines Leistungsschemas

MySQL – offizielle Website-Definition

Die Anweisungen SHOW PROFILE und SHOW PROFILES zeigen Profilinformationen an, die die Ressourcennutzung für Anweisungen angeben, die im Verlauf der aktuellen Sitzung ausgeführt werden.

Einfach ausgedrückt: der aktuelle Ressourcenverbrauch der Sitzung.

Hinweis: show profile und show Profiles werden nicht empfohlen und können in späteren Versionen von MySQL gelöscht werden; die offizielle Website empfiehlt die Verwendung von Performance Schema

Anwendung

Das Profil ist standardmäßig deaktiviert und wird für Produktionsumgebungen empfohlen.

Anzeigen der Profileinstellungen der aktuellen Umgebung

mysql> Variablen wie „%profiling%“ anzeigen;
+------------------------+----------+
| Variablenname | Wert |
+------------------------+----------+
| habe_profiling | JA |
| Profilierung | AUS |
| Größe des Profilverlaufs | 15 |
+------------------------+----------+

„profile off“ bedeutet, dass die Profilerstellung ausgeschaltet ist, und „profile_history_size 15“ bedeutet, dass der Ressourcenverbrauch der letzten 15 SQL-Anweisungen gespeichert wird.

Um die Profilfunktion zu aktivieren, können Sie den Befehl verwenden

Setze globales Profiling = 1;

Anschließend können Sie den folgenden Befehl verwenden

Profile anzeigen;

Zeigen Sie die letzten 15 SQL-Anweisungen an;

Wenn Sie die spezifische Situation eines bestimmten Artikels anzeigen möchten, lautet das SQL-Format:

PROFIL ANZEIGEN [Typ [, Typ] ... ]
 [FÜR ANFRAGE n]
 [LIMIT Zeilenanzahl [OFFSET Offset]]

Typ: {
 ALLE
 | BLOCK IO
 | KONTEXTWECHSEL
 | Zentralprozessor
 |IPC
 | SPEICHER
 | SEITENFEHLER
 | QUELLE
 | TAUSCH
}

Auf der offiziellen Website werden die einzelnen Felder im Typ wie folgt erklärt:

ALL zeigt alle Informationen an

BLOCK IO zeigt die Anzahl der Blockeingabe- und -ausgabevorgänge an

CONTEXT SWITCHES zeigt die Anzahl der freiwilligen und unfreiwilligen Kontextwechsel an.

CPU zeigt die CPU-Auslastungszeiten von Benutzern und Systemen an

IPC zeigt die Anzahl der gesendeten und empfangenen Nachrichten an

MEMORY ist derzeit nicht implementiert

PAGE FAULTS zeigt die Anzahl der schwerwiegenden und geringfügigen Seitenfehler an.

SOURCE zeigt die Namen der Funktionen aus dem Quellcode an, zusammen mit dem Namen und der Zeilennummer der Datei, in der die Funktion vorkommt

SWAPS zeigt die Anzahl der Swaps an

Die Profilerstellung ist für jede Sitzung gültig. Wenn die Sitzung beendet wird, gehen die aktuellen Profilinformationen verloren.

Anwendungsfälle

mysql> Profile anzeigen;
+----------+------------+----------------------------+
| Abfrage-ID | Dauer | Abfrage |
+----------+------------+----------------------------+
| 1 | 0,00060275 | * aus Kunden auswählen |
| 2 | 0,00222450 | Tabellen anzeigen |
| 3 | 0,00567425 | Wählen Sie * aus Büros aus |
| 4 | 0,00052050 | Tabellen anzeigen |
| 5 | 0,01123300 | Wählen Sie * aus Zahlungen aus |
| 6 | 0,00111675 | Tabellen anzeigen |
| 7 | 0,02049625 | Wählen Sie * aus Produktlinien |
+----------+------------+----------------------------+

Bei der Fehlerbehebung bei der SQL-Ausführung oder bei der Ermittlung, welches SQL sehr langsam ausgeführt wird und wo es langsam ist, sind Profile sehr nützliche Tools.

Zeigt, wo eine SQL-Anweisung ausgegeben wird

mysql> Profil für Abfrage 7 anzeigen;
+----------------------+----------+
| Status | Dauer |
+----------------------+----------+
| beginnt | 0,000043 |
| Berechtigungen werden geprüft | 0,000005 |
| Eröffnungstabellen | 0,014552 |
| init | 0,000025 |
| Systemsperre | 0,000009 |
| optimieren | 0,000004 |
| Statistik | 0,000011 |
| wird vorbereitet | 0,000010 |
| wird ausgeführt | 0,000003 |
| Daten werden gesendet | 0,005653 |
| Ende | 0,000010 |
| Abfrageende | 0,000009 |
| Tabellen schließen | 0,000020 |
| Elemente freigeben | 0,000121 |
| aufräumen | 0,000023 |
+----------------------+----------+

Die Informationen sind auf einen Blick klar, sodass ich mir einen allgemeinen Überblick über die SQL-Ausführung verschaffen kann.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Tutorial zur Profilverwendung des MySQL-Leistungsanalysetools
  • So verwenden Sie den Befehl SHOW PROFILE zur Leistungsanalyse in MySQL
  • Tutorial zur Verwendung der Profilabfrageleistung in MySQL
  • Detaillierte Erläuterung der Verwendung von MySQL-Profilen zur Analyse von langsamem SQL (Group Left Join ist effizienter als Unterabfrage)

<<:  Vue Element UI-Komponente für benutzerdefinierte Beschreibungsliste

>>:  So richten Sie die passwortfreie SSH-Anmeldung beim Linux-Server ein

Artikel empfehlen

Vue implementiert Drag & Drop oder Klicken zum Hochladen von Bildern

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

CentOS 8-Installationsdiagramm (superdetailliertes Tutorial)

CentOS 8 ist offiziell veröffentlicht! CentOS ent...

Befehle zum Deaktivieren und Aktivieren von MySQL-Fremdschlüsseleinschränkungen

Deaktivieren und Aktivieren von MySQL-Fremdschlüs...

Sequenzimplementierungsmethode basierend auf MySQL

Das Team ersetzte den neuen Rahmen. Alle neuen Un...

Verhindern von SQL-Injection in Webprojekten

Inhaltsverzeichnis 1. Einführung in SQL-Injection...

Analyse der Prinzipien von Docker-Containern

Inhaltsverzeichnis 01 Was ist das Wesen eines Con...

Implementierung integrierter Module und benutzerdefinierter Module in Node.js

1. Commonjs Commonjs ist ein benutzerdefiniertes ...

Was bedeuten CN2, GIA, CIA, BGP und IPLC?

Was ist die CN2-Linie? CN2 steht für China Teleco...

Detaillierte Erklärung des Skript-Debugging-Mechanismus in Bash

Ausführen des Skripts im Debugmodus Sie können da...

Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

Mit beiden Methoden kann ein JavaScript-Code nach...

PNG-Alpha-Transparenz in IE6 (vollständige Sammlung)

Viele Leute sagen, dass IE6 PNG-Transparenz nicht...

Vue implementiert Multi-Grid-Eingabefeld auf mobilem Endgerät

Vor Kurzem hat das Unternehmen die Anforderung ge...

3 einfache Möglichkeiten, Karusselleffekte mit JS zu erzielen

In diesem Artikel werden 3 Methoden beschrieben, ...