질의가 요구하는 색인만 만들어
색인은 읽기를 빠르게 하지만 INSERT·UPDATE·DELETE를 더 비싸게 만들고 디스크와 캐시를 차지하며 VACUUM 유지보수도 늘려. 측정 없이 색인을 더하면 읽기 질의는 눈에 띄게 빨라지지 않으면서 쓰기 처리량만 5배 낮아질 수 있어. 느린 질의를 측정하고 실행 계획에서 반복되는 조건과 정렬을 찾아 가장 큰 병목부터 해결해.
쓰이지 않는 색인을 찾아
pg_stat_user_indexes.idx_scan = 0은 후보를 찾는 단서야. 통계가 초기화된 시점, 월말 작업, 장애 대응처럼 드문 경로를 확인하지 않고 바로 지우지는 마.
겹치는 색인을 합쳐
복합 색인이 단일 색인의 역할을 대신하는지, 고유 제약을 받치는 색인인지 살펴. 읽기에 의미 있는 이득을 주지 못하면서 쓰기와 캐시만 잡아먹는 색인은 유지 이유를 설명해야 해.