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

Wydajność MYSQL IN

Zaczynając od określonej liczby rekordów, IN orzeczenie nad SELECT staje się szybszy niż na liście stałych.

Zobacz ten artykuł na moim blogu, aby porównać wydajność:

Jeśli kolumna użyta w zapytaniu w IN klauzula jest indeksowana w następujący sposób:

SELECT  *
FROM    table1
WHERE   unindexed_column IN
        (
        SELECT  indexed_column
        FROM    table2
        )

, to zapytanie jest po prostu zoptymalizowane do EXISTS (który używa tylko jednego wpisu dla każdego rekordu z table1 )

Niestety, MySQL nie jest w stanie wykonać HASH SEMI JOIN lub MERGE SEMI JOIN które są jeszcze bardziej wydajne (zwłaszcza jeśli obie kolumny są indeksowane).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czym zastąpić mysql_result dla MySQLi

  2. Nigdy nie usuwać wpisów? Dobry pomysł? Zwykły?

  3. Czy MySQL może zastąpić wiele znaków?

  4. Zabezpieczanie zdalnego połączenia mysql

  5. Zapytanie MySQL z wieloma tabelami