LLM WikiAccess-protected knowledge portal
🔒 내부용 · 비배포 (포트폴리오에는 일반화 버전만 공개)

DB 인덱스 최적화 & 용량 절감 (2025)

마스터 DB 인덱스 진단·정리 절차를 새 팀원이 이해할 수 있는 수준의 온보딩 상세

0한눈에

1왜 했나

마스터 DB는 수년간 운영되며 인덱스가 추가되기만 하고 정리된 적이 없었다. 미사용 인덱스는 저장 용량을 잡아먹고, 쓰기 부하와 DB 초기 구성(설치 시 lab-master로부터 DB 생성) 시간을 늘린다. 비효율 쿼리(OR 남발, LIKE '%...' 등)는 인덱스를 못 타서 풀스캔을 유발했다. → 실측 기반으로 무엇을 지울지 정해야 했다.

2진행 순서

  1. 운영에서 실제 사용되는 쿼리 95개 수집
  2. 각 쿼리를 EXPLAIN으로 분석해 어떤 인덱스가 실제로 타는지 매핑
  3. 전체 인덱스 311개 중 어디에도 안 쓰이는 224개(72%) 식별 → 삭제
  4. 복합 인덱스 컬럼 순서를 실행 계획에 맞게 재구성
  5. SQL 튜닝: OR → UNION 전환, LIKE 와일드카드 패턴 최적화로 인덱스 활용
  6. 용량·DB 생성 시간 재측정으로 효과 검증
운영 마스터 DB이므로, 삭제 대상은 반드시 실사용 쿼리 EXPLAIN 결과로 "안 쓰임"이 확인된 것만. 추측으로 지우지 말 것.
결과: 2.6TB → 1.2TB (53.8% 절감), 초기 설치 DB 생성 12시간 → 6시간. 비용 절감과 서비스 품질에 직접 기여.

3온보딩 포인트

4공개(포트폴리오)와의 차이

공개 버전(human/portfolio/items/db-index-optimization.html)은 내부 호스트명(lab-master 등)과 내부 절차 디테일을 제거하고 문제·접근·임팩트 중심으로 일반화했다. 수치(2.6TB→1.2TB, 311/224개, 95개, 12h→6h)는 동일하게 유지. 이 내부 문서는 본인 참고/온보딩용.