not in speed up1 NOT IN 쿼리 성능 개선하기 (PostgreSQL) 일반적으로 모든 RDBMS에서 부정조건 (not in, != 등) 은 인덱스를 선택하지 못한다. 이는 부정조건이 그 조건 외 나머지 모두를 뜻하기 때문인데, 지정된 대상을 빨리 찾는것이 인덱스임을 고려하면 그것 외 나머지라는 것 자체가 전체를 읽어야만 알 수 있는 정보이기 때문이다. 이럴때 가장 효율적인 해결 방법은 not in 을 없애는 것이다. 가장 대표적으로는 left outer join 이 있다. as-is) 아래의 쿼리는 현재 거의 2초에 가까운 시간이 소요되는 쿼리이다. select id from courses WHERE ("status"::text = 'publish' AND "published_date" < now() AND "exposure" AND "deleted_at" IS NULL).. 2022. 1. 17. 이전 1 다음