밀집 인덱스
IT위키
더 많은 작업
밀집 인덱스(Dense Index)는 데이터 파일에 나오는 모든 탐색 키 값마다 인덱스 엔트리를 하나씩 두는 순서 인덱스이다.
데이터 파일이 그 탐색 키 순서로 정렬되어 있지 않으면 엔트리를 건너뛰고 순차 탐색으로 메울 수가 없다. 그래서 정렬 순서와 다른 속성에 만드는 보조 인덱스(비클러스터링 인덱스)는 반드시 밀집 인덱스이다.[1] 데이터 파일은 한 가지 순서로만 정렬되므로 희소 인덱스는 파일당 최대 하나이지만, 밀집 인덱스는 속성마다 얼마든지 만들 수 있다. 한 파일에 "희소 인덱스 하나와 밀집 인덱스 여러 개"는 가능하고, "밀집 인덱스 하나와 희소 인덱스 여러 개"는 불가능하다.
Elmasri·Navathe 는 키 필드에 대한 보조 인덱스를 레코드마다 엔트리가 있는 밀집 인덱스의 대표 예로 들고, 비키 필드의 보조 인덱스는 값마다 엔트리를 두고 레코드 포인터 묶음(블록)을 가리키게 하는 방식을 함께 설명한다.[2]
- 레코드를 찾는 속도가 빠르다. 인덱스만 보고도 값의 존재 여부를 알 수 있다.
- 엔트리가 레코드 수(또는 서로 다른 값의 수)만큼 있어 공간이 많이 들고, 레코드를 넣고 뺄 때마다 인덱스도 고쳐야 한다.
- 정렬된 파일이라도 밀집 인덱스를 둘 수는 있다. 다만 블록당 한 엔트리의 희소 인덱스로도 충분한 경우가 많아 공간을 아끼려고 희소를 쓴다.
| 구분 | 밀집 인덱스 | 희소 인덱스 |
|---|---|---|
| 엔트리 | 모든 탐색 키 값 | 일부 값(보통 블록당 하나) |
| 데이터 파일 정렬 조건 | 없다 | 탐색 키 순서로 정렬되어야 한다 |
| 한 파일당 개수 | 여러 개 | 최대 한 개 |
| 보조 인덱스 | 밀집이어야 한다 | 될 수 없다 |
- ↑ 1.0 1.1 Silberschatz, Korth, Sudarshan, 「Database System Concepts 7th Edition - Chapter 14: Indexing」 강의 슬라이드, https://www.db-book.com/slides-dir/PDF-dir/ch14.pdf, 확인일: 2026-11-04.
- ↑ Elmasri, Navathe, 「Fundamentals of Database Systems - Chapter 14: Indexing Structures for Files」 강의 슬라이드(Purdue University CS448), https://cs.purdue.edu/homes/bb/cs448_Fall2016/lecture-files/pdf/ch14-Indexing%20Structures%20for%20Files.pdf, 확인일: 2026-11-04.