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

MySQL-ydeevne - IN-klausul vs. er lig med (=) for en enkelt værdi

De fleste af de andre svar giver ikke noget afgørende, kun spekulationer. Så baseret på det gode råd fra @Namphibians svar , jeg kørte en EXPLAIN på nogle forespørgsler svarende til dem i OP.

Resultaterne er nedenfor:

EXPLAIN for en forespørgsel med = 1 :

EXPLAIN for en forespørgsel med IN(1) :

EXPLAIN for en forespørgsel med IN(1,2,3) :

Som du kan se, optimerer MySQL IN(1) at være det samme som = 1 i denne form for forespørgsel. @mes' svar synes dog at indikere, at dette måske ikke altid er tilfældet med mere komplekse forespørgsler.

Så for dem, der var for dovne til at køre EXPLAIN sig selv, nu ved du det. Og ja, du vil måske køre EXPLAIN på din egen forespørgsel for at være sikker på, at det bliver håndteret på denne måde. :-)



  1. Sådan angiver du primærnøglenavn i EF-kode-først

  2. Sådan konfigureres en klynge-til-klynge-replikering til Percona XtraDB Cluster eller MariaDB Cluster

  3. SQLite Tutorial:Alt hvad du behøver at vide

  4. PHP-webapplikation:spørgsmål om bedste praksis for mysql-databasedesign