Mysql
 sql >> Database >  >> RDS >> Mysql

ETÀ [1, 2, 3] vs ETÀ TRA 1 E 3

Entrambe le query utilizzeranno un indice.

La query A verrà tradotta in:

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

La query B verrà tradotta in

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

Quindi la query A eseguirà 3 test utilizzando OR.
La query B eseguirà 2 test utilizzando AND.

La query B è più veloce.

In generale, le query che utilizzano AND sono più veloci delle query che utilizzano OR .
Anche la query B esegue meno test e poiché sta testando un intervallo può escludere più facilmente risultati che non desidera.