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

EDAD [1, 2, 3] vs. EDAD ENTRE 1 Y 3

Ambas consultas utilizarán un índice.

La consulta A se traducirá a:

select * from person where age = 1 or age = 2 or age 3;

La consulta B se traducirá a

select * from person where age >= 1 and age <= 3;

Entonces, la consulta A hará 3 pruebas usando OR.
La consulta B hará 2 pruebas usando AND.

La consulta B es más rápida.

En general, las consultas que utilizan AND son más rápidos que las consultas usando OR .
Además, la Consulta B está haciendo menos pruebas y, como está probando un rango, puede excluir más fácilmente los resultados que no desea.