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

Prestazioni MySQL - Clausola IN vs. Uguale a (=) per un valore singolo

La maggior parte delle altre risposte non fornisce nulla di conclusivo, solo speculazioni. Quindi, sulla base del buoni consigli dalla risposta di @Namphibian , ho eseguito un EXPLAIN su alcune query simili a quelle dell'OP.

I risultati sono di seguito:

EXPLAIN per una query con = 1 :

EXPLAIN per una query con IN(1) :

EXPLAIN per una query con IN(1,2,3) :

Come puoi vedere, MySQL ottimizza IN(1) essere uguale a = 1 in questo tipo di query. Risposta di @mes sembra indicare che questo potrebbe non essere sempre il caso di query più complesse, tuttavia.

Quindi, per coloro che erano troppo pigri per eseguire EXPLAIN stessi, ora lo sai. E sì, potresti voler eseguire EXPLAIN sulla tua stessa richiesta per essere sicuro che venga gestito in questo modo. :-)