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

Detailliertes Tutorial zur Installation von Docker auf CentOS 8

1. Frühere Versionen yum entfernen Docker Docker-...

Detaillierte Erläuterung der Überwachung der NVIDIA GPU-Nutzung unter Linux

Bei der Verwendung von TensorFlow für Deep Learni...

Detaillierte Schritte zur Installation eines Hadoop-Clusters unter Linux

Inhaltsverzeichnis 1. Erstellen Sie ein Hadoop-Ve...

Eine Analyse von Div+Float, einem sehr wichtigen Konzept im Website-Design

Beim Erstellen einer Website treten immer wieder P...

js Drag & Drop-Tabelle zur Realisierung der Inhaltsberechnung

In diesem Artikelbeispiel wird der spezifische Co...

Einführung in MyCat, die Datenbank-Middleware

1. Mycat-Anwendungsszenarien Mycat wurde für eine...

Docker-Compose-Tutorial: Installation und Schnellstart

Inhaltsverzeichnis 1. Einführung in Compose 2. Co...

Das Front-End muss wissen, wie Bilder verzögert geladen werden (drei Methoden)

Inhaltsverzeichnis 1. Was ist Lazy Loading? 2. Im...

Zusammenfassung häufig verwendeter MySQL-Befehle im Linux-Betriebssystem

Hier sind einige gängige MySQL-Befehle für Sie: -...