Oba dotazy budou používat index.
Dotaz A bude přeložen do:
select * from person where age = 1 or age = 2 or age 3;
Dotaz B se přeloží do
select * from person where age >= 1 and age <= 3;
Dotaz A tedy provede 3 testy pomocí OR.
Dotaz B provede 2 testy pomocí AND.
Dotaz B je rychlejší.
Obecně platí, že dotazy používající AND
jsou rychlejší než dotazy pomocí OR
.
Dotaz B také provádí méně testů a protože testuje rozsah, může snadněji vyloučit výsledky, které nechce.