Mysql
 sql >> Base de données >  >> RDS >> Mysql

ÂGE [1, 2, 3] vs ÂGE ENTRE 1 ET 3

Les deux requêtes utiliseront un index.

La requête A sera traduite en :

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

La requête B se traduira par

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

Donc la requête A fera 3 tests en utilisant OR.
La requête B fera 2 tests en utilisant AND.

La requête B est plus rapide.

En général, les requêtes utilisant AND sont plus rapides que les requêtes utilisant OR .
De plus, la requête B effectue moins de tests et, comme elle teste une plage, elle peut plus facilement exclure les résultats qu'elle ne souhaite pas.