2. JOIN, 잘 좀 만나봅시다. (feat. or 조건)
지난 번에는 인덱스를 태우기 위해 특정 컬럼을 서브쿼리로 변경하였다.
이번 쿼리는 실행속도가 약 5초 정도 걸렸으나, 이전 인덱스 작업을 한 view를 참조하고 있었기에 3초 중반 정도로 개선이 되었다. 이번에는 이 쿼리를 1초 중반대로 줄여볼 예정이다.
EXPLAIN으로 성능검사를 해보니, rfd라는 테이블이 인덱스를 안타고 있었다.
or 조건 때문에 인덱스를 타지 못한 것이였다.
or 조건이였던 join 문을 2개의 join으로 분리시켰다.
분리 시키니 join된 2개의 테이블 모두 정상적으로 인덱스가 적용되었다.
join 구조를 변경해주니, 3초 중반이였던 쿼리가 1초 중반으로 개선되었다.
아래는 쿼리 튜닝 후, view의 실행속도 변화이다.