Un. Préface
Nous pouvons l'utiliser lorsque nous voulons analyser les performances d'un certain SQL.
Le profilage n'est disponible que depuis mysql5.0.3.
Après avoir démarré le profil, toutes les requêtes comprenant des déclarations incorrectes seront enregistrées.
Fermez la session ou définissez profiling=0 pour la fermer. (Si vous définissez le paramètre profiling_history_size sur 0, cela a également pour effet de profiler de désactiver MySQL.)
Cet outil peut être utilisé pour interroger l'état d'exécution SQL, la durée du verrouillage du système et Table lock take, etc.,
est très important pour localiser la Consommation d'E/S et la Consommation du CPU d'une instruction. (Les deux plus grandes ressources consommées par l'exécution des instructions SQL sont IO et CPU)
--Après mysql5.7, les informations de profil seront progressivement abandonnées. MySQL recommande d'utiliser le schéma de performances
Deux. Processus
Le processus simple est le suivant :
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; //关闭分析
Trois. Analyse de signification
La signification de la barre horizontale dans l'image ci-dessus
---------- ---- -------- ---------- ---------- ------------
"Status": "fin de la requête", Statut
"Durée": "1.751142", Durée
"CPU_user": "0.008999", utilisateur du processeur
"CPU_system": "0.003999", système du processeur
"Context_voluntary": "98", commutation active de contexte
"Context_involuntary": "0", commutation passive de contexte
"Block_ops_in": "8", opérations d'entrée bloquées
"Block_ops_out": "32", opérations de sortie bloquées
"Messages_sent": "0", message envoyé
"Messages_received": "0", message reçu
"Page_faults_major": "0", erreur de pagination principale
"Page_faults_minor": "0", défauts de page
"Swaps": "0", nombre d'échanges
"Source_function": "mysql_execute_command", fonction source
"Source_file": "sql_parse.cc", fichier source
"Source_line": "4465" Ligne de code source
---------------------- ---- -- ---------- ---------- ------------
Up La signification de la colonne verticale dans l'image
---------------------- ------ ---- ---- ------ ------------
démarrage : Démarrage
Vérification des autorisations : Vérification des autorisations
Ouverture des tables : Ouverture des tables
init : Initialisation
Verrouillage du système : Verrouillage du système
optimisation : Optimisation
statistiques : Statistiques
préparer : préparer
exécuter : exécuter
Envoi de données : Envoi de données
Résultat du tri : Tri
end :结束
query end :查询 结束
closing tables : 关闭表 /去除TMP 表
freeing items : 释放物品
cleaning up :清理
+----------------------+----------+----------+------------+
一般情况下,常用以下语句也就够了 :
mysql->SHOW profile CPU,BLOCK IO io FOR query 2;
以上就是Mysql分析-profile详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!