sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:INTE IN kontra UTOM prestandaskillnad (redigerad #2)

Fråga #1 är inte det eleganta sättet att göra detta... (NOT) IN SELECT är bra för några poster, men den kan inte använda index (Seq Scan ).

Innan du hade UTOM... så här gjordes det med en JOIN (HASH JOIN ):

    SELECT sp.id
    FROM subsource_position AS sp
        LEFT JOIN subsource AS s ON (s.postion_id = sp.id)
    WHERE
        s.postion_id IS NULL

EXCEPT dök upp i Postgres för länge, länge sedan... Men att till exempel använda MySQL tror jag att detta fortfarande är det enda sättet att uppnå detta med hjälp av index-korsningar.



  1. Kontrollera Oracle RAC Network och IP-information

  2. Se till att markören är korrekt initierad innan du kommer åt data från den

  3. uppdatera tabellrader i postgres med hjälp av subquery

  4. Hur läser man innehållet i en .sql-fil till ett R-skript för att köra en fråga?