PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL:Leistungsunterschied zwischen NOT IN und EXCEPT (bearbeitet Nr. 2)

Abfrage #1 ist nicht der elegante Weg, dies zu tun ... (NOT) IN SELECT ist für ein paar Einträge in Ordnung, kann aber keine Indizes verwenden (Seq Scan ).

Vor EXCEPT... wurde dies mit einem JOIN (HASH JOIN) gemacht ):

    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 ist vor langer, langer Zeit in Postgres aufgetaucht ... Aber zum Beispiel mit MySQL glaube ich, dass dies immer noch der einzige Weg ist, dies mit Index Junctions zu erreichen.