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

Wydajność MySQL — klauzula IN a równanie (=) dla pojedynczej wartości

Większość pozostałych odpowiedzi nie dostarcza niczego rozstrzygającego, a jedynie spekulacje. Tak więc, w oparciu o dobre rady z odpowiedzi @Namphibian , uruchomiłem EXPLAIN na niektórych zapytaniach podobnych do tych w OP.

Wyniki są poniżej:

EXPLAIN dla zapytania z = 1 :

EXPLAIN dla zapytania z IN(1) :

EXPLAIN dla zapytania z IN(1,2,3) :

Jak widać, MySQL optymalizuje IN(1) być taki sam jak = 1 w tego rodzaju zapytaniach. odpowiedź @mes wydaje się jednak wskazywać, że nie zawsze może tak być w przypadku bardziej złożonych zapytań.

Tak więc dla tych, którzy byli zbyt leniwi, aby uruchomić EXPLAIN sami, teraz wiesz. I tak, możesz chcieć uruchomić EXPLAIN na własne zapytanie, aby mieć pewność, że jest to obsługiwane w ten sposób. :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie mysqli/mysql wewnątrz funkcji nie działa

  2. Wybierz ostatnią wiadomość między komunikacją dwóch użytkowników w mysql

  3. Jak uzyskać wczorajszą datę w MySQL?

  4. PostgreSQL odpowiednik tablic pamięci MySQL?

  5. Jak zmienić domyślny port MySQL/MariaDB w systemie Linux?