Oba zapytania będą używać indeksu.
Zapytanie A zostanie przetłumaczone na:
select * from person where age = 1 or age = 2 or age 3;
Zapytanie B zostanie przetłumaczone na
select * from person where age >= 1 and age <= 3;
Tak więc zapytanie A wykona 3 testy za pomocą OR.
Zapytanie B wykona 2 testy za pomocą I.
Zapytanie B jest szybsze.
Ogólnie zapytania używające AND
są szybsze niż zapytania przy użyciu OR
.
Ponadto Zapytanie B wykonuje mniej testów, a ponieważ testuje zakres, może łatwiej wykluczyć wyniki, których nie chce.