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

Performances MySQL - Clause IN vs. Equals (=) pour une valeur unique

La plupart des autres réponses ne fournissent rien de concluant, juste des spéculations. Donc, sur la base des bons conseils de la réponse de @Namphibian , j'ai exécuté un EXPLAIN sur certaines requêtes similaires à celles de l'OP.

Les résultats sont ci-dessous :

EXPLAIN pour une requête avec = 1 :

EXPLAIN pour une requête avec IN(1) :

EXPLAIN pour une requête avec IN(1,2,3) :

Comme vous pouvez le voir, MySQL optimise IN(1) être identique à = 1 dans ce genre de requête. réponse de @mes semble indiquer que ce n'est pas toujours le cas avec des requêtes plus complexes, cependant.

Donc, pour ceux qui étaient trop paresseux pour exécuter le EXPLAIN eux-mêmes, maintenant vous savez. Et oui, vous voudrez peut-être exécuter le EXPLAIN sur votre propre requête pour vous assurer qu'elle est traitée de cette façon. :-)