대용량 데이터 분석 — 집계 쿼리 최적화 경험 중심
SQL은 로그 데이터 분석과 지표 집계에서 가장 많이 사용합니다. 수백만 건 이상의 행을 다루는 상황에서 쿼리 실행 속도가 중요했고, 저는 WHERE 조건의 순서와 인덱스 활용 방식을 습관적으로 먼저 확인합니다. 이전 프로젝트에서 집계 쿼리가 5분 이상 걸리는 문제가 있었고, 파티셔닝된 컬럼을 필터 최상단으로 이동하고 불필요한 서브쿼리를 CTE로 정리했더니 30초대로 단축됐습니다.
가독성 면에서는 CTE를 단계별로 나눠 각 단계의 의미를 이름에 담는 방식을 씁니다. 쿼리는 한 번만 쓰는 게 아니라 팀원이 읽고 수정하는 자산이라는 생각입니다. 최근에는 Window Function을 자주 쓰는데, 행 간 비교나 순위 계산에서 서브쿼리보다 직관적이고 빠른 경우가 많습니다.