📌 클러스터드 인덱스 (Clustered Index)
- 실제 데이터가 인덱스 순서대로 정렬되어 저장됩니다.
- 즉, 인덱스 자체가 데이터입니다.
- 한 테이블에 하나만 존재 가능 (정렬이 하나 기준이니까)
✅ 장점
- 범위 조회에 빠름 (BETWEEN, ORDER BY)
- 접근 시 디스크 I/O가 줄어듦
❌ 단점
- 데이터 삽입/삭제 시 정렬 유지해야 하므로 성능 저하 가능
- 한 테이블당 하나만 가능
📌 넌클러스터드 인덱스 (Non-Clustered Index)
- 인덱스와 실제 데이터가 분리되어 있음
- 인덱스에는 데이터의 포인터만 저장되어 있고, 필요한 값은 본문에서 추가로 읽음 (lookup)
✅ 장점
- 다양한 컬럼에 여러 개 생성 가능
- 클러스터드 인덱스 외 다른 조건도 최적화 가능
❌ 단점
- 인덱스로 찾고 → 다시 테이블 접근 (lookup) 필요해서 I/O 증가
- 여러 컬럼을 한번에 찾는 데는 부적합할 수 있음
'DB' 카테고리의 다른 글
[DB] 옵티마이저 동작 방식 (0) | 2025.05.19 |
---|---|
[DB] 드라이빙, 드라이븐 테이블 (0) | 2025.05.19 |
[DB] 조인 전략 (0) | 2025.05.19 |
[DB] 데이터베이스에서 사용되는 다양한 키 🔑 (0) | 2025.03.31 |
[DB] MySQL InnoDB의 인덱스 생성 전략 (0) | 2025.03.31 |