데이터베이스 인덱스(Index)를 설명하고, 클러스터드 인덱스(Clustered Index)와 논클러스터드 인덱스(Non-Clustered Index)를 비교하여 설명하시오.
1. 데이터베이스 인덱스(Index)의 개념

- 정의: 데이터베이스 테이블에서 검색 성능을 향상시키기 위해 사용하는 보조 자료구조. 책의 목차와 유사한 역할 수행.
- 목적: 데이터 검색 속도 향상, 정렬/조인 성능 개선.
- 단점: 인덱스 생성/유지에 따른 추가 저장공간 필요, DML(INSERT/UPDATE/DELETE) 작업 시 성능 저하 가능.
- 구조: 일반적으로 B-Tree, B+Tree, Hash 등을 활용.
2. 클러스터드 인덱스(Clustered Index)

- 정의: 인덱스의 정렬 순서에 따라 실제 데이터 레코드가 물리적으로 재배열된 인덱스.
- 특징:
- 테이블당 하나만 생성 가능 (데이터 자체가 정렬되기 때문).
- 기본 키(Primary Key)가 지정되면 기본적으로 클러스터드 인덱스가 생성되는 경우가 많음.
- 범위 검색 및 순차 조회에 유리.
3. 논클러스터드 인덱스(Non-Clustered Index)

- 정의: 인덱스가 별도의 객체로 생성되고, 데이터는 원래 순서를 유지하면서 인덱스에서 실제 데이터의 위치(Row Pointer)를 가리키는 구조.
- 특징:
- 한 테이블에 여러 개 생성 가능.
- 인덱스와 실제 데이터가 분리되어 존재. (실제 데이터는 정렬되어 있지 않음)
- 임의 접근(Random Access)에 유리.
4. 클러스터드 인덱스 vs 논클러스터드 인덱스 비교
| 구분 | 클러스터드 인덱스 (Clustered) | 논클러스터드 인덱스 (Non-Clustered) |
| 데이터 저장 방식 | 인덱스 순서에 맞게 데이터 자체가 정렬되어 저장 | 인덱스와 데이터가 분리, 인덱스는 데이터 위치를 가리킴 |
| 개수 제한 | 테이블당 1개 | 여러 개 생성 가능 |
| 성능 특성 | 범위 검색, 정렬, 순차 조회에 유리 | 임의 접근, 특정 값 조회에 유리 |
| 저장 구조 | 인덱스 = 데이터 | 인덱스 ≠ 데이터 (별도 구조 + 포인터) |
| 생성 예 | 기본 키(Primary Key) | 보조 키(Secondary Key), 자주 검색되는 칼럼 |
5. 결론
- 인덱스는 데이터베이스 검색 성능 최적화에 필수적인 기술로, 사용 패턴에 맞는 인덱스 전략 수립이 중요하다.
- 클러스터드 인덱스는 정렬 및 범위 조회 중심, 논클러스터드 인덱스는 다양한 조건 검색 중심으로 활용된다.
'IT Tech.' 카테고리의 다른 글
| (소프트웨어공학) 클래스 설계의 5가지 원칙 (SOLID 원칙) (0) | 2025.08.31 |
|---|---|
| (소프트웨어공학) 객체지향 방법론 vs. 프로세스 지향, 데이터 지향 (2) | 2025.08.31 |
| (보안) 재식별 공격 (Re-identification Attack) (2) | 2025.08.27 |
| (소프트웨어공학) 제품계열(Product Line) 방법론 (0) | 2025.08.25 |
| (AI) LLM(Large Language Model) 보안 위험과 대응 방안 (3) | 2025.08.22 |