Database ‐ Diagnosing Full Table Scans and Composite Index Basics - thought-corner/backend-roadmap GitHub Wiki
복합 인덱스 대원칙
- 인덱스는 순서대로 사용한다(왼쪽 접두어 규칙).
- 등호(=) 조건은 앞으로, 범위 조건(<, >)은 뒤로 보낸다.
- 정렬(ORDER BY)도 인덱스 순서를 따른다.
개발자가 비즈니스를 알아야 하는 이유
- 기술적인 스펙이나 실행 계획만 보고 인덱스를 설계하면 매우 큰 낭패를 보기 쉽다.
- 기술을 다루기 전에 비즈니스 도메인이나 데이터 분포를 먼저 이해하는 습관을 들이자.
단일 인덱스와 복합 인덱스 내부 동작 차이
인덱스 도입의 트레이드오프
- 쓰기 성능 저하 : 새로운 인덱스를 추가하면 데이터를 등록, 수정, 삭제할 때마다 인덱스 정렬 구조를 새로 변경하는 오버헤드가 발생한다. 테이블에 데이터가 너무 많아지면 조회는 빨라져도 쓰기 작업이 뚝뚝 끊긴다.
- 인덱스 용량 비대화 : 인덱스도 디스크 공간을 차지하는 물리적인 데이터이다. 인덱스가 많을수록 DB 버퍼 풀 메모리가 낭비된다.