[DB] PK가 있는데 왜 쿼리가 느릴까 - 복합인덱스 선두컬럼
Dongwoongkim
인덱스 설계는 단순히 "어떤 컬럼을 포함시킬까"의 문제가 아니다. 어떤 순서로 정렬할까가 더 중요하다. 복합 PK가 잡혀있다고 해서 그 안에 들어있는 컬럼으로 조건을 걸기만 하면 빨라질 거라고 생각했는데, 그게 아니었다.이번 글에서는 PK가 있음에도 쿼리가 풀스캔에 가깝게 동작했던 사례를 정리하고, 복합 B-tree 인덱스의 선두 컬럼(leading column) 원리를 짚어본다.0. 문제 상황리포팅 화면 하나가 느렸다. 예시로 지점별·연월별 매출 통계를 보여주는 페이지인데, 한 지점 데이터가 5천 건 수준이 되면 응답이 200ms 이상으로 늘어졌다.테이블 구조는 대략 이렇다(예시).CREATE TABLE analytics.sales_monthly_stats ( sales_id bigint ..