Eins. Vorwort
Wir können es verwenden, wenn wir die Leistung eines bestimmten SQL analysieren möchten.
Profiling ist erst seit mysql5.0.3 verfügbar.
Nach dem Start des Profils werden alle Anfragen inklusive Falschangaben erfasst.
Schließen Sie die Sitzung oder setzen Sie profiling=0, um sie zu schließen. (Wenn Sie den Parameter profiling_history_size auf 0 setzen, hat dies auch den Profilierungseffekt, MySQL auszuschalten.)
Mit diesem Tool können Sie den SQL-Ausführungsstatus und die Dauer der Systemsperre abfragen und Table Lock Take usw.
ist sehr wichtig, um den I/O-Verbrauch und CPU-Verbrauch einer Anweisung zu lokalisieren. (Die beiden größten Ressourcen, die von der SQL-Anweisungsausführung verbraucht werden, sind IO und CPU)
--Nach mysql5.7 werden Profilinformationen schrittweise aufgegeben.
Zwei. Ablauf
Der einfache Ablauf ist wie folgt:
set profiling=1; //打开分析 run your sql1; run your sql2; show profiles; //查看sql1,sql2的语句分析 show profile for query 1; //查看sql1的具体分析 show profile ALL for query 1; //查看sql1相关的所有分析【主要看i/o与cpu,下边分析中有各项意义介绍】 set profiling=0; //关闭分析
Drei. Bedeutungsanalyse
Die Bedeutung des horizontalen Balkens im Bild oben
+--------- ---- ---------+----------+----------+-------------- --+
"Status": "Abfrageende", Status
"Dauer": "1.751142" , Dauer
"CPU_user": "0.008999", CPU-Benutzer
"CPU_system": "0.003999", CPU-System
„Context_voluntary“: „98“, kontextaktives Umschalten
“Context_involuntary“: „0“, kontextpassives Umschalten
“Block_ops_in“: „8“, blockierte Eingabevorgänge
„Block_ops_out“: „32“, blockierte Ausgabevorgänge
„Messages_sent“: „0“, Nachricht gesendet
"Messages_received": "0", Nachricht empfangen
"Page_faults_major": "0", Haupt-Paging-Fehler
"Page_faults_minor": "0", Seitenfehler
"Swaps": "0", Anzahl der Swaps
"Source_function": "mysql_execute_command", Quellfunktion
"Source_file": "sql_parse.cc", Quelldatei
„Source_line“: „4465“ Quellcodezeile
+------------------- -- -+----------+----------+----------------+
Die Bedeutung der vertikalen Spalte im obigen Bild
+---------------------+-- ----- ---+----------+----------------+
Start: Start
Berechtigungen prüfen: Berechtigungen prüfen
Tabellen öffnen: Tabellen öffnen
init: Initialisierung
Systemsperre: Systemsperre
Optimierung: Optimierung
Statistik: Statistik
Vorbereitung: Vorbereitung
Ausführen: Ausführen
Daten senden: Daten senden
Sortierungsergebnis: Sortieren
end :结束
query end :查询 结束
closing tables : 关闭表 /去除TMP 表
freeing items : 释放物品
cleaning up :清理
+----------------------+----------+----------+------------+
一般情况下,常用以下语句也就够了 :
mysql->SHOW profile CPU,BLOCK IO io FOR query 2;
以上就是Mysql分析-profile详解的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!