sql >> Base de Datos >  >> RDS >> Mysql

Rendimiento de MySQL - Cláusula IN vs. Igual (=) para un valor único

La mayoría de las otras respuestas no proporcionan nada concluyente, solo especulaciones. Entonces, según el buen consejo de la respuesta de @Namphibian , ejecuté un EXPLAIN en algunas consultas similares a las del OP.

Los resultados están a continuación:

EXPLAIN para una consulta con = 1 :

EXPLAIN para una consulta con IN(1) :

EXPLAIN para una consulta con IN(1,2,3) :

Como puede ver, MySQL optimiza IN(1) ser igual a = 1 en este tipo de consulta. Respuesta de @mes Sin embargo, parece indicar que este podría no ser siempre el caso con consultas más complejas.

Entonces, para aquellos que fueron demasiado perezosos para ejecutar EXPLAIN ellos mismos, ahora ya lo sabes. Y sí, es posible que desee ejecutar EXPLAIN en su propia consulta para asegurarse de que se maneja de esta manera. :-)