Connaître le nombre de lignes traitées par une requête MySQL
L’optimisation de requêtes MySQL est nécessaire afin d’obtenir un site performant. Des outils comme la commande EXPLAIN ou l’analyse des fichiers de log sont d’un grand secours. La commande EXPLAIN permet de connaître les plans d’exécution, les utilisations d’index, mais le nombre de lignes traitées n’est que le résultat d’un calcul approximatif. Le fichier de log ’slow’ l’indique… à condition que la requête ait été qualifiée de suffisamment lente pour y être inscrite. Alors ? Comment lors de la construction d’une requête savoir si le nombre de lignes sera restreint ou au contraire énorme ?
Les variables status ‘handler’ nous indique cela. La méthode est donc simple, bien qu’un peu fastidieuse à la longue…
mysql> flush status; mysql> SELECT xxxxx; mysql> show status like 'handler%';
Le nombre de lignes traitées correspond à la somme de Handler_read_key + Handler_read_next + Handler_read_rnd + Handler_read_rnd_next.
Leave a Reply