PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL:НЕ IN спрямо ОСВЕН разлика в производителността (редактирано #2)

Заявка №1 не е елегантният начин за това... (НЕ) IN SELECT е добре за няколко записа, но не може да използва индекси (Seq Scan ).

Преди да има EXCEPT... ето как се прави с 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

ОСВЕН се появи в Postgres много, много отдавна... Но например, използвайки MySQL, вярвам, че това все още е единственият начин да се постигне това с помощта на индексни кръстовища.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL Upsert разграничава вмъкнатите и актуализираните редове с помощта на системни колони XMIN, XMAX и други

  2. синтаксис на външния ключ на postgresql

  3. Премахване на дубликат от таблица

  4. Поправете „INSERT има повече изрази от целевите колони“ в PostgreSQL

  5. SQLAlchemy:филтриране на стойности, съхранени във вложен списък на полето JSONB