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

MySQL IN-operatørens ydeevne på (stort?) antal værdier

Generelt set, hvis IN listen bliver for stor (for en dårligt defineret værdi af 'for stor', der normalt er i området omkring 100 eller mindre), bliver det mere effektivt at bruge en join, der skaber en midlertidig tabel, hvis det er nødvendigt for at indeholde tallene.

Hvis tallene er et tæt sæt (ingen mellemrum - hvilket eksempeldataene antyder), så kan du gøre det endnu bedre med WHERE id BETWEEN 300 AND 3000 .

Men formodentlig er der huller i sættet, på hvilket tidspunkt det kan være bedre at gå med listen over gyldige værdier trods alt (medmindre hullerne er relativt få i antal, i hvilket tilfælde du kan bruge:

WHERE id BETWEEN 300 AND 3000 AND id NOT BETWEEN 742 AND 836

Eller hvad hullerne nu er.



  1. Ti almindelige trusler mod eksekveringsplanens kvalitet

  2. Hvor får jeg libpq-kilden?

  3. Kan vi sende parametre til en visning i SQL?

  4. Sådan tester du PHP MySQL-databaseforbindelse ved hjælp af script