티스토리 뷰

안녕하세요 강정호입니다. 오늘은 데이터베이스의 인덱스에 대해 공부해 볼게요.


인덱스란 무엇인가??


정의 : DB 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료구조.(참고링크)


인덱스를 사용하면 전체 데이터를 검색하지 않고 데이터베이스에서 원하는 정보를 빠르게 검색할 수 있다. 예를 들어, 테이블에는 수백만의 고객 정보가 저장되어 있고 고객명, 고객번호, 주민번호 등을 이용해 데이터를 검색하고자 할 때 인덱스가 없다면 찾고자 하는 대상이 한 명이더라도 수백만의 고객 데이터 전체를 읽어야 한다.


인덱스의 가장 중요한 기능은 접근 경로를 단축함으로써 데이터의 탐색 속도를 높이는것!!



접근 경로로서의 인덱스


- Single-level 인덱스는 데이터 레코드를 찾는 효과적인 보조물이다.

- 1개의 인덱스 파일은 <필드 값, 레코드의 포인터>로 구성된다.

- 인덱스는 필드에 접근하는 경로로 불린다.

- 인덱스 파일은 data file에 비해 상대적으로 작은 디스크 블록을 점유하는데 그 이유는 entry가 작기 때문이다.

- 인덱스는 조밀한 정도에 따라 dense index, sparse index로 나누어질 수 있다.




인덱스의 종류


  • 키에 따른 인덱스 분류
    • 기본 인덱스(Primary Index) : 기본키를 포함하는 인덱스(키의 순서가 레코드의 순서를 결정지음)
    • 보조 인덱스(Secondary Index) : 기본 인덱스 이외의 인덱스( 키의 순서가 레코드의 순서를 의미하지는 않음)
  •  파일 조직에 따른 인덱스
    • 집중 인덱스(Clustered Index) : 데이타 레코드의 물리적 순서가 그 파일에 대한 인덱스 엔트리 순서와 동일하게(유사하게) 유지되도록 구성된 인덱스
    • 비집중 인덱스(Unclustered Index) : 집중 형태가 아닌 인덱스
  • 데이터 범위에 따른 인덱스 분류
    • 밀집 인덱스(Dense Index) : 데이터 레코드 각각에 대해 하나의 인덱스 엔트리가 만들어진 인덱스
    • 희소 인덱스(Sparse Index) : 레코드 그룹 또는 데이터 블록에 대해 하나의 엔트리가 만들어지는 인덱스

단일 레벨 인덱스 - Primary Index

정렬된 데이터 파일에 의해 정의된다.

- 데이터 파일은 Key field에 의해 정렬된다.

- 데이터 파일의 각 블록에 대해 하나의 색인 항목을 포함한다. 그만큼 색인 entry는 첫 번째 레코드의 Key field 값을 가지고 있다.





단일 레벨 인덱스 - Clustering Index


- 정렬된 데이터베이스 파일에 정의된다.

- 데이터 파일은 키와 달리 키가 아닌 필드에 저장이 됩니다.

- 필드의 각기 다른 값에 대해 하나의 색인 항목을 포함한다. 인덱스 항목은 다음을 포함하는 첫 째 해당 필드 값을 가진 레코드 즉 데이터 블록을 가리킨다.




클러스터링 인덱스와 보조 인덱스(Secondary Index)에 대한 링크



댓글