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

Ydeevne af MYSQL IN

Startende fra et bestemt antal poster, IN prædikat over en SELECT bliver hurtigere end det over en liste med konstanter.

Se denne artikel i min blog for sammenligning af ydeevne:

Hvis kolonnen brugt i forespørgslen i IN klausul er indekseret, sådan her:

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

, så er denne forespørgsel bare optimeret til en EXISTS (som kun bruger én indgang for hver post fra table1 )

Desværre, MySQL er ikke i stand til at udføre HASH SEMI JOIN eller MERGE SEMI JOIN som er endnu mere effektive (især hvis begge kolonner er indekseret).



  1. Sådan forbinder du PHP til MySQL

  2. SQL Count records inden for en måned ved hjælp af et unix-tidsstempel

  3. Hvordan ændres datoformatet fra MM/DD/ÅÅÅÅ til ÅÅÅÅ-MM-DD i PL/SQL?

  4. MySQL arrangere eksisterende tabelkolonner