Postgres NOT IN performance

前端 未结 4 551
暗喜
暗喜 2020-12-28 22:09

Any ideas how to speed up this query?

Input

EXPLAIN SELECT entityid FROM entity e

LEFT JOIN level1entity l1 ON l1.level1id = e.level1_level1id
LEFT         


        
4条回答
  •  轮回少年
    2020-12-28 22:33

    You might get a better result if you can rewrite the query to use a hash anti-join.

    Something like:

    with exclude_list as (
      select unnest(string_to_array('1377776,1377792,1377793,1377794,1377795, ...',','))::integer entity_id)
    select entity_id
    from   entity left join exclude_list on entity.entity_id = exclude_list.entity_id
    where  exclude_list.entity_id is null;
    

提交回复
热议问题