Ein Kollege bei CleverCode empfahl kürzlich ein Tool zur Analyse von SQL-Anweisungen in MySQL, Profiling, und stellte fest, dass dieses Tool sehr gut ist, da es genau analysieren kann, wo die spezifische Zeit für SQL-Anweisungen während des Abfrageprozesses aufgewendet wurde. CleverCode fasst das hier zusammen und teilt es mit Ihnen.
1 Einführung
Der Query Profiler von MySQL ist ein sehr praktisches Tool zur Analyse von Anfragen, mit dem Sie den Verbrauch mehrerer Ressourcen im gesamten Ausführungsprozess einer Abfrage, wie CPU, IO, IPC, SWAP usw., sowie das Auftreten von PAGE FAULTS, CONTEXT SWITCHING usw. erhalten und außerdem den Standort jeder von MySQL aufgerufenen Funktion in der Quelldatei während der Abfrage abrufen können.
MySQL-Version 5.0.37 oder später unterstützt die DEBUGGING-Funktion PROFILING, die es ermöglicht, die Details der von SQL-Anweisungen verbrauchten Ressourcen zu verstehen. Da es den Aufruf der getrusage()-Funktion des Systems erfordert, kann sie nur auf Linux/Unix-Klassenplattformen verwendet werden, nicht unter Windows. Außerdem dient PROFILING der Verarbeitung von Prozessen und nicht Threads, und andere Anwendungen auf dem Server können deine Debugging-Ergebnisse beeinflussen, daher eignet sich dieses Tool für Debugging während der Entwicklung, und wenn du in einer Produktionsumgebung debuggen möchtest, solltest du auf seine Einschränkungen achten.
2 Betrieb
2.1 Prüfe, ob das Profil aktiviert ist, es ist standardmäßig deaktiviert.
2.2 Profiling aktivieren. Variable Profiling ist eine Benutzervariable, die jedes Mal wieder aktiviert werden muss.
2.3 Führen Sie die folgenden Anweisungen aus: Um zu vermeiden, dass SQL zuvor in QCACHE gespeichert wurde, wird empfohlen, die SELECT-Anweisung zu zwingen, beim Ausführen von SQL keine QCACHE-Erkennung durchzuführen. So können Sie die Genauigkeit der Analyse einreichen.
2.4 VerwendungProfilanfrage anzeigenDer jüngsteAusführungsinformationen der Anweisung。 (Analyse: Wählen Sie sql_no_cache Zähl(*) aus system_user bei Alter > 20)
2.5 Verwendung von Profilen anzeigen. Sehen Sie sich eine Liste von Anweisungen an, die auf dem Server ausgeführt werden. (Abfrage-ID, aufgewendete Zeit, Anweisung).
2.6 Verwenden Sie das Show-Profil, um die Ausführungsinformationen der Formulierungs-ID abzufragen. Hier analysieren wir die Aussage mit ID 6. (Analyse: Wählen Sie sql_no_cache Zähl(*) aus system_user mit dem Alter > 20 Jahren).
2.7 CPU- und Block-IO-Verbrauch erhalten.
2.8 Zusätzliche Informationen erhalten. kann durch die Ausführung von "SHOW PROFILE *** FOR QUERY n" erhalten werden. Referenzadresse: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.
|