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

Detaillierte Darstellung des MySQL 5.7.33-Installationsprozesses

Inhaltsverzeichnis Download des Installationspake...

So installieren und verwenden Sie Cockpit unter CentOS 8/RHEL 8

Cockpit ist ein webbasiertes Serververwaltungstoo...

Eine kurze Einführung in Linux-Leistungsüberwachungsbefehle kostenlos

Wie können wir den Fehler lokalisieren, wenn im S...

Detaillierte Erklärung der MySQL-Syntax, Sonderzeichen und regulären Ausdrücke

Häufig verwendete Anzeigebefehle für MySQL 1. Zei...

Tutorial zur Installation der PyTorch-Entwicklungsumgebung unter Windows

Anaconda-Installation Anaconda ist ein Softwarepa...

So beschränken Sie das Eingabefeld in HTML auf die Eingabe reiner Zahlen

Beschränken Sie input Eingabefeld auf reine Zahle...

Zusammenfassung zur Verwendung der Bootstrap-Tabelle

In diesem Artikel erfahren Sie, wie Sie die Boots...

Lernen Sie, wie Sie Uniapps und Miniprogramme (Bilder und Text) untervergeben

Inhaltsverzeichnis 1. Subunternehmer für Miniprog...

Implementierung der Nginx-Flusskontrolle und Zugriffskontrolle

Nginx-Verkehrskontrolle Die Ratenbegrenzung ist e...

Lösung für den internen Serverfehler Nginx 500

Als ich heute Nginx verwendete, trat ein 500-Fehl...

Detaillierte Erklärung des in JavaScript integrierten Date-Objekts

Inhaltsverzeichnis Date-Objekt Erstellen eines Da...