Mysql
 sql >> Base de données >  >> RDS >> Mysql

Ma requête MySql simple n'utilise pas d'index

Je suppose que vous avez peu de lignes dans la table 'commentaires', c'est pourquoi MySQL effectue une analyse complète de la table au lieu d'utiliser l'index dans votre première requête. Il estime que le coût d'une analyse complète de la table peut être inférieur à la première correspondance avec l'index, puis à la recherche des lignes.

Dans votre deuxième requête, vous utilisez l'index car il est possible d'obtenir toutes les colonnes de la requête (la colonne 'id') directement à partir de l'index sans avoir besoin de rechercher les lignes de la table après avoir fait correspondre l'index. C'est le sens des informations supplémentaires "Utilisation de l'index".

Essayez si avec un nombre important de lignes dans les "commentaires", MySQL utilise toujours une analyse complète, je pense que ce serait un comportement étrange. En fait, j'ai testé exactement la même chose dans une version 5.1 de MySQL et il utilise toujours "l'index" même avec quelques lignes.