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

Swiper+echarts realisiert den Links- und Rechts-Scrolleffekt mehrerer Dashboards

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

js verwendet die Reduce-Methode, um Ihren Code eleganter zu gestalten

Vorwort In tatsächlichen Projekten kann die häufi...

Interaktive Erlebnistrends, die 2015-2016 zum Mainstream werden

Der wichtigste Artikel zum interaktiven Design im...

Beispielcode zur Implementierung der MySQL-Master-Slave-Replikation in Docker

Inhaltsverzeichnis 1. Übersicht 1. Grundsatz 2. U...

Beispiel für eine Nginx-Cache-Konfiguration

Beim Entwickeln und Debuggen einer Webanwendung s...

So verwenden Sie die Vue-Cache-Funktion

Inhaltsverzeichnis Cache-Funktion in vue2 Transfo...

Einfaches Schreiben von gespeicherten MySQL-Prozeduren und -Funktionen

Was ist eine gespeicherte Prozedur? Einfach ausge...

JavaScript zum Implementieren des Slider-Verifizierungscodes

In diesem Artikel wird der spezifische JavaScript...

Detaillierte Erläuterung des CocosCreator-Nachrichtenverteilungsmechanismus

Überblick Dieser Artikel beginnt mit der Einführu...

Detaillierte Erklärung und Zusammenfassung der URL zur Datenbankverbindung

Detaillierte Erklärung und Zusammenfassung der UR...

Javascript zum Umschalten durch Klicken auf das Bild

Durch Klicken Bilder zu wechseln, ist im Leben ei...

Detaillierte Erläuterung der Vue-Formularbindung und -Komponenten

Inhaltsverzeichnis 1. Was ist bidirektionale Date...