sql >> Database >  >> RDS >> Mysql

LEEFTIJD [1, 2, 3] vs. LEEFTIJD TUSSEN 1 EN 3

Beide zoekopdrachten gebruiken een index.

Vraag A wordt vertaald naar:

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

Zoekopdracht B wordt vertaald naar

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

Dus query A zal 3 tests doen met OR.
Query B zal 2 tests doen met AND.

Query B is sneller.

In het algemeen kunnen zoekopdrachten met AND zijn sneller dan zoekopdrachten met OR .
Ook doet Query B minder tests en omdat het een bereik test, kan het gemakkelijker resultaten uitsluiten die het niet wil.



  1. Enkele rij, enkele kolom ophalen met PDO

  2. Parallelle unnest() en sorteervolgorde in PostgreSQL

  3. QueryException in slaapstand vanwege apostrof

  4. stuur gegevens naar MySQL met AJAX + jQuery + PHP