Profilage de requête SQL avec MySQL
Le profiler de requête MySQL est une fonctionnalité qui permet d'obtenir le détail des opérations effectuées par l'optimiseur de requête interne pour aller récupérer les résultats d'une requête. Cet outil apporte une aide précieuse lorsqu'on optimise une requête SQL lente.
Profilage d'une requête MySQL
Pour activer le profilage, il sauf définir la variable profiling
à un, puis exécuter la requête à tester, et désactiver le profilage pour ne pas polluer l'analyse :
SET profiling=1; SELECT * FROM post WHERE id IN(10,11); SET profiling=0;
Pour le moment rien se semble différent, mais en fait MySQL a enregistré les données de profilage en mémoire, et on peut ensuite les afficher comme nous allons le voir :
Afficher le profilage MySQL
Pour afficher le profil généré par la dernière requête, il faut effectuer cette requête :
SHOW PROFILE;
Cette commande retourne la liste des opérations effectuées par mysql pour le traitement de la requête :
Après avoir lu convertir un document excel en pdf vous en saurez d'avantage sur ce sujet.
Status Duration starting 0.000088 Opening tables 0.000009 System lock 0.000003 Table lock 0.000004 init 0.000039 optimizing 0.000008 statistics 0.000046 preparing 0.000014 Creating tmp table 0.003801 executing 0.000001 Copying to tmp table 0.000025 Sorting result 0.000017 Sending data 0.000014 end 0.000001 removing tmp table 0.002568 end 0.000005 query end 0.000002 freeing items 0.000070 logging slow query 0.000001 cleaning up 0.000001
Graphique de profilage
Une trace de profilage n'est pas très pratique à lire, donc je vous conseille d'utiliser phpMyAdmin qui produit des graphiques :
Encore faim ? allez lire ça : affiche rétro !