-
Redshift에서의 where ... in과 inner join 성능 비교Tips 2023. 10. 30. 18:56728x90반응형
비교 쿼리:
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반응형'Tips' 카테고리의 다른 글
SQL로 문자열에서 특정 문자를 다른 문자로 레코드 변경하기 (0) 2023.11.02 따옴표 또는 쌍따옴표가 포함된 문자열을 DB API로 적재하기 (0) 2023.10.24 colab에서 mecab 설치 실패시 해결 방법 (error: subprocess-exited-with-error) (0) 2023.08.24 눈으로 보기에 같은 글자이지만 다른 글자로 인식되는 경우에는 아스키코드를 뽑아보자 (0) 2023.06.12 Javascript에서 서버 시간대에 상관없이 한국 시간으로 현재 날짜 호출하기 (0) 2023.05.16