sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL:NOT IN versus EXCEPT rozdíl ve výkonu (upraveno #2)

Dotaz č. 1 není elegantní způsob, jak toho dosáhnout... (NOT) IN SELECT je v pořádku pro několik položek, ale nemůže používat indexy (Seq Scan ).

Před použitím EXCEPT... takto se to udělalo pomocí 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 se objevil v Postgresu už dávno, dávno... Ale věřím, že například pomocí MySQL je to stále jediný způsob, jak toho dosáhnout pomocí indexových spojení.



  1. AKTUALIZACE SQL pro začátečníky

  2. Je ODP.NET vyžadován pro klienta Oracle 11g?

  3. Automaticky aktualizujte materializovaný pohled pomocí pravidla nebo upozornění

  4. Vygenerujte náhodnou int hodnotu od 3 do 6