sql >> Database >  >> RDS >> Mysql

Prestaties van MySQL IN-operator op (groot?) aantal waarden

Over het algemeen geldt dat als de IN lijst te groot wordt (voor een slecht gedefinieerde waarde van 'te groot' die meestal in de buurt van 100 of kleiner ligt), wordt het efficiënter om een ​​join te gebruiken, en indien nodig een tijdelijke tabel te maken om de getallen vast te houden.

Als de getallen een dichte verzameling zijn (geen gaten - wat de voorbeeldgegevens suggereren), dan kun je het nog beter doen met WHERE id BETWEEN 300 AND 3000 .

Vermoedelijk zijn er echter hiaten in de set, en op dat moment is het misschien beter om toch de lijst met geldige waarden te gebruiken (tenzij de hiaten relatief klein zijn in aantal, in welk geval u zou kunnen gebruiken:

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

Of wat de hiaten ook zijn.



  1. Hoe SQL-injectie-aanvallen te voorkomen door Secure

  2. SQL-joins

  3. EXPORTEREN ALS INSERT-VERKLARINGEN:Maar in SQL Plus overschrijft de regel 2500 tekens!

  4. SQL Server ongebruikte index