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.