Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wydajność operatora MySQL IN na (dużej?) liczbie wartości

Ogólnie rzecz biorąc, jeśli IN lista staje się zbyt duża (dla jakiejś źle zdefiniowanej wartości 'zbyt dużej', która zwykle mieści się w zakresie 100 lub mniejszym), bardziej efektywne staje się użycie złączenia, tworząc w razie potrzeby tabelę tymczasową do przechowywania liczb.

Jeśli liczby są gęstym zbiorem (bez przerw - co sugerują przykładowe dane), możesz zrobić jeszcze lepiej z WHERE id BETWEEN 300 AND 3000 .

Jednak prawdopodobnie w zestawie są luki, w którym to momencie może być lepiej skorzystać z listy poprawnych wartości (chyba że luk jest stosunkowo mało, w takim przypadku możesz użyć:

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

Albo jakiekolwiek są luki.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja MySQL POW() – podnieś wartość do potęgi innej wartości

  2. Jak zmodyfikować kolumnę MySQL, aby zezwolić na wartość NULL?

  3. Generowanie losowego i unikalnego ciągu 8 znaków za pomocą MySQL

  4. Jak rozwiązać problem kodowania znaków MySQL?

  5. Podstawy dostrajania MySQL na serwerach dedykowanych