12.3 인덱스 튜닝
인덱스는 실제 조건식과 조인 키의 읽기 비용을 줄일 때만 추가합니다. 생성 전후의 쿼리 지연, 입력 처리량, 메모리·스토리지를 함께 측정합니다.
테이블별 확인
| 테이블 타입 | 기본 키·접근 경로 | 추가 인덱스 |
|---|---|---|
| TAG | 이름과 BASETIME 기반 접근 | 지원 값·메타데이터 인덱스 |
| LOG | _ARRIVAL_TIME 범위 | LSM, BITMAP, KEYWORD |
| LOOKUP | PRIMARY KEY | 지원 보조 인덱스 |
| VOLATILE | 선택한 PRIMARY KEY | REDBLACK 보조 인덱스 |
| TRANSACTION | PRIMARY KEY | 관계형 보조 인덱스 |
지원되는 인덱스 타입과 구문은 테이블별 장과 인덱스 구문을 확인합니다.
적용 순서
- 느린 SQL의
EXPLAIN과 결과 건수를 기록합니다. - 조건식의 선택도와 값 분포를 확인합니다.
- 이미 같은 선두 컬럼을 가진 인덱스가 있는지 확인합니다.
- 후보 인덱스 하나를 생성하고 구축 완료를 확인합니다.
- 같은 조건에서 쿼리와 입력을 다시 측정합니다.
- 효과가 없거나 쓰기 비용이 큰 인덱스는 제거합니다.
SHOW INDEXES;
SHOW INDEXGAP;고정된 “인덱스 개수별 처리량 감소율”을 적용하지 않습니다. 행 크기, 키 분포, 동시성, 스토리지에 따라 결과가 달라지므로 운영과 유사한 데이터로 측정합니다.
주의사항
- 낮은 선택도의 컬럼에 인덱스를 추가하기 전에 스캔과 비교합니다.
- 함수·형변환으로 인덱스 컬럼을 감싸 키 범위를 잃지 않는지 확인합니다.
- 복합 인덱스는 자주 쓰는 조건식 조합과 선두 컬럼을 기준으로 설계합니다.
- 인덱스 구축 중 입력·쿼리 부하와
SHOW INDEXGAP을 관찰합니다. - 미사용 인덱스를 제거하기 전 최대 부하·배치 업무에서도 쓰이지 않는지 확인합니다.
테이블별 상세 내용은 TAG, LOG, LOOKUP, VOLATILE, TRANSACTION 장의 “인덱스와 성능” 페이지를 참고합니다.
최근 업데이트