DEVELOPMENT/Working-levelDatabase

실무데이터베이스, 두번째

개발자 간지뽕빨리턴씨 2019. 11. 24. 19:23
반응형

클러스터드 인덱스 / 넌 클러스터드 인덱스


먼저, 위 두개를 알아보기 전 "인덱스"에 대해서 알아보겠습니다.

 

인덱스(INDEX)[지정된 칼럼 -> 메모리 영역 "목차" 생성]

데이터베이스 분야에 있어서 테이블에 대한 동작의 '속도'를 높여주는 '자료 구조'를 말한다.

 

- 테이블 내 1개의 칼럼, 혹은 여러 개의 칼럼을 이용하여 생성 가능

- 빠른 검색 가능

- 레코드 접근의 효율적 순서 동작 제공

 

루트 레벨/ 루트 페이지

인덱스 페이지의 가장 상위

루트 레벨에 포함된 인덱스 페이지를 루트 페이지

인덱스 정점->1개만 존재

 

검색 시 최상위 루트 레벨에서 검색을 찾게 됨

이 것은 내부적 각각 인덱스의 루트 페이지에 대한 위치 정보로 기록 보관

 

중간 레벨

루트와 리프의 사이 인덱스 수준 중간 레벨

인덱스 크기에 따라 존재 할 수 있기도 하고 존재하지 않을 수 있음

새로운 중간 레벨이 추가되는 것은 거의 없음

많은 데이터가 추가 되어야 중간 레벨 하나가 추가 됨

- 보통의 경우 1-2개 정도 중간 레벨을 가지고 있음

 

리프레벨 / 리프페이지 / 퍼스트 페이지

인덱스 페이지의 최하위 수준을 리프 레벨

리프 레벨 포함된 인덱스 페이지 '리프 페이지'

첫번째 리프 페이지 '퍼스트 페이지'

인덱스 -> 데이터의 위치 정보를 모은 개체이기에 인덱스의 리프 레벨은 인덱스 전체구조 가장 중요한 역활

 

참고 자료 : 네이버 블로그

 

인덱스 저장 시 필요한 디스크 공간은 보통 테이블 저장

필요한 디스크 공간보다 작음 (WHY? 키-필드 다른 세부 항목 x)

 

"관계형 데이터베이스" 인덱스 - 테이블의 한 부분

 

클러스터드 인덱스

차이 : 물리적으로 행을 재배열

크기 : 인덱스 페이지 용량이 넌 클러스터드 인덱스 페이지 용량보다 작다.

선택도 : 30%이내에서 사용해야 좋은 선택

최대 갯수 : 테이블 당 1개

 

넌 클러스터드 인덱스

차이 : 물리적으로 재배열 하지 않는다.

크기 : 클러스터드 인덱스 페이지 용량보다 크다.

선택도 : 3% 이내에서 사용해야 좋은 선택

최대 갯수 : 테이블 당 249개

- 열의 물리적 순서는 인덱스 순서와 동일하지 않음.

- 전형적으로 JOIN, WHERE 그리고 ORDER BY 절에서 사용된 비 기본키 칼럼 위에 만들어짐

클러스터드와 넌 클러스터드 참고 블로그 : 규우82

참고 자료 : 위키백과

 

이미지 출처 : 손호성

 

위에 있는 이미지가 정확하게 설명이 되어져있는 것은 아니지만, 대략적으로 이런 식으로 되구나라고 기억하자.

 

 

728x90