Tips
Redshift에서의 where ... in과 inner join 성능 비교
Hyunie
2023. 10. 30. 18:56
728x90
반응형
비교 쿼리:
explain
select
{컬럼}
from {테이블} as o
inner join (
select
{조건 컬럼 1}
, {조건 컬럼 2}
from {테이블}
...
) as t
on o.{조건 컬럼 1} = t.{조건 컬럼 2}
and o.{조건 컬럼 1} = t.{조건 컬럼 2}
explain
select
{컬럼}
from {테이블}
where ({조건 컬럼 1}, {조건 컬럼 2}) in (
select
{조건 컬럼 1}
, {조건 컬럼 2}
from {테이블}
...
)
결과:
실행계획을 살펴보니 where ... in 쿼리도 inner join으로 수행되었다. 아마도 분석 후 inner join으로 실행하는 것이 더 효율적이라 그렇게 실행한 것 같다.
일반적으로 RDBMS에서 where ... in 은 풀스캔을하기 때문에 사용을 지양한다고 들었다. Redshift는 구조가 다르고, 쿼리최적화가가능하며 사실 구문의 성능은 어떤 데이터를 어떻게 가져오느냐에 따라 다르기때문에 slow query가 발생하는 경우 실행계획을 확인하는 것이 가장 적절한 방법인 듯 하다.
728x90
반응형