SQL2 상관 서브쿼리로 인한 읽기 병목 개선 요약문제운영 환경에서 조회 API 응답 지연(1초 이상) 이슈 발생상관 서브쿼리로 인한 N+1 패턴이 DB 레벨에서 발생과정실행 계획 분석을 통해 Nested Loop 반복 실행과 옵티마이저 통계 오류를 확인상관 서브쿼리를 CTE + Hash Join 구조로 리팩토링성과서브쿼리 실행 92회에서 1회로 감소총 실행 비용 246.0에서 40.6로 감소 (약 83% 개선, 6배 성능 향상)운영 데이터 기준으로 실행 계획 변화와 성능 개선을 수치로 검증 문제 배경운영 중인 서비스에서 특정 테넌트 기준 조회 API의 응답지연이 보고되었다. 슬로우 쿼리 분석 결과, 직원을 그룹화하는 테이블의 조회 쿼리 내부에 상관 서브쿼리(Correleated Subquery)가 포함되어있었다. 그 영향으로 메인 쿼리 결과 행 수.. 2025. 12. 13. 외부 조인(OUTER JOIN)에 대해 개요실무 대부분의 케이스는 내부 조인(INNER JOIN)으로 해결된다. 하지만 "당일 출근 기록은 없지만 직원 목록은 모두 출력"되었으면 좋겠다는 화면 구현이 종종 요구된다. 이런 경우는 (1) 앱 계층에서 쿼리를 분리하거나, 백엔드 페이징 처리가 필요한 경우는 (2) 외부 조인(OUTER JOIN)으로 처리하게 된다. 외부 조인 중 LEFT JOIN(이하 왼쪽 조인)은 특히나 첫 회사의 첫 실무를 할때 어려움을 많이 느꼈던 개념이었다. 왼쪽 조인을 최근 김영한님 강의를 보면서 정리하게 되었는데 (1)거기서 학습한 내용과 내가 실제로 (2)회사에서 어떤것을 느끼고 사용해왔는지를 정리해둔다. 왼쪽 외부 조인만 주로 사용한다실무에서는 왼쪽 외부 조인을 주로 사용한다. 그 이유는 아래 그림을 통해 이해할 수.. 2025. 10. 26. 이전 1 다음