본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

밀집 인덱스(Dense Index)는 데이터 파일에 나오는 모든 탐색 키 값마다 인덱스 엔트리를 하나씩 두는 순서 인덱스이다.

밀집 인덱스의 엔트리는 탐색 키 값과, 그 값을 가진 레코드(중복 값이면 그 값의 첫 레코드)를 가리키는 포인터로 이루어진다. 인덱스에서 값을 찾으면 곧바로 레코드 위치를 알 수 있다는 점이 일부 값만 엔트리로 두는 희소 인덱스와 다르다.[1]

언제 밀집이어야 하는가

편집 원본 편집

데이터 파일이 그 탐색 키 순서로 정렬되어 있지 않으면 엔트리를 건너뛰고 순차 탐색으로 메울 수가 없다. 그래서 정렬 순서와 다른 속성에 만드는 보조 인덱스(비클러스터링 인덱스)는 반드시 밀집 인덱스이다.[1] 데이터 파일은 한 가지 순서로만 정렬되므로 희소 인덱스는 파일당 최대 하나이지만, 밀집 인덱스는 속성마다 얼마든지 만들 수 있다. 한 파일에 "희소 인덱스 하나와 밀집 인덱스 여러 개"는 가능하고, "밀집 인덱스 하나와 희소 인덱스 여러 개"는 불가능하다.

Elmasri·Navathe 는 키 필드에 대한 보조 인덱스를 레코드마다 엔트리가 있는 밀집 인덱스의 대표 예로 들고, 비키 필드의 보조 인덱스는 값마다 엔트리를 두고 레코드 포인터 묶음(블록)을 가리키게 하는 방식을 함께 설명한다.[2]

  • 레코드를 찾는 속도가 빠르다. 인덱스만 보고도 값의 존재 여부를 알 수 있다.
  • 엔트리가 레코드 수(또는 서로 다른 값의 수)만큼 있어 공간이 많이 들고, 레코드를 넣고 뺄 때마다 인덱스도 고쳐야 한다.
  • 정렬된 파일이라도 밀집 인덱스를 둘 수는 있다. 다만 블록당 한 엔트리의 희소 인덱스로도 충분한 경우가 많아 공간을 아끼려고 희소를 쓴다.

희소 인덱스와 구별하기

편집 원본 편집
구분 밀집 인덱스 희소 인덱스
엔트리 모든 탐색 키 값 일부 값(보통 블록당 하나)
데이터 파일 정렬 조건 없다 탐색 키 순서로 정렬되어야 한다
한 파일당 개수 여러 개 최대 한 개
보조 인덱스 밀집이어야 한다 될 수 없다
  1. ↑ 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.
  2. ↑ 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.