하나의 인덱스는 SELECT 경로를 줄이지만, 동시에 모든 DML과 통계·정비 작업에 비용을 추가합니다. 설계 기준은 효과가 보이는가, 중복되지 않는가, 운영 중 안전하게 바꿀 수 있는가입니다.
탐색 범위가 줄고 정렬을 덜 수행합니다.
쓰기 많은 테이블에서는 체감 비용이 바로 커집니다.
느린 쿼리 하나보다 전체 트래픽 비중이 더 중요합니다.
(a,b)와 (a)
(a,b)가 있으면 a 조건 검색을 대체할 수 있습니다.
저장 공간과 변경 비용만 늘어납니다.
완전히 같은 것은 DROP, 일부 다른 것은 실제 사용량으로 판단합니다.
API 추가나 리포트 쿼리에 맞춰 경로를 보강합니다.
대량 변경 직후에는 옵티마이저가 낡은 통계를 볼 수 있습니다.
ONLINE / CONCURRENTLY와 통계 갱신을 함께 계획
생성 방식, 배포 시간, 롤백 절차를 같이 정합니다.
새로 만드는 것보다 중복을 줄이는 쪽이 더 안전할 때가 많습니다.
모니터링으로 실제 사용 여부를 확인한 뒤 제거합니다.
ANALYZE TABLE, DBMS_STATS 같은 통계 갱신이 실행 계획을 되살립니다.