Ambas as consultas usarão um índice.
A consulta A será traduzida para:
select * from person where age = 1 or age = 2 or age 3;
A consulta B será traduzida para
select * from person where age >= 1 and age <= 3;
Portanto, a consulta A fará 3 testes usando OR.
A consulta B fará 2 testes usando AND.
A consulta B é mais rápida.
Em geral, consultas usando
AND
são mais rápidas do que consultas usando OR
.Também a Consulta B está fazendo menos testes e por estar testando um intervalo pode excluir mais facilmente resultados que não deseja.