“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”- Jef Raskin
맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도
실무데이터베이스 두번쨰 |
클러스터드 인덱스 / 넌 클러스터드 인덱스
먼저, 위 두개를 알아보기 전 "인덱스"에 대해서 알아보겠습니다.
인덱스(INDEX)[지정된 칼럼 -> 메모리 영역 "목차" 생성]
데이터베이스 분야에 있어서 테이블에 대한 동작의 '속도'를 높여주는 '자료 구조'를 말한다.
- 테이블 내 1개의 칼럼, 혹은 여러 개의 칼럼을 이용하여 생성 가능
- 빠른 검색 가능
- 레코드 접근의 효율적 순서 동작 제공
루트 레벨/ 루트 페이지
인덱스 페이지의 가장 상위
루트 레벨에 포함된 인덱스 페이지를 루트 페이지
인덱스 정점->1개만 존재
검색 시 최상위 루트 레벨에서 검색을 찾게 됨
이 것은 내부적 각각 인덱스의 루트 페이지에 대한 위치 정보로 기록 보관
중간 레벨
루트와 리프의 사이 인덱스 수준 중간 레벨
인덱스 크기에 따라 존재 할 수 있기도 하고 존재하지 않을 수 있음
새로운 중간 레벨이 추가되는 것은 거의 없음
많은 데이터가 추가 되어야 중간 레벨 하나가 추가 됨
- 보통의 경우 1-2개 정도 중간 레벨을 가지고 있음
리프레벨 / 리프페이지 / 퍼스트 페이지
인덱스 페이지의 최하위 수준을 리프 레벨
리프 레벨 포함된 인덱스 페이지 '리프 페이지'
첫번째 리프 페이지 '퍼스트 페이지'
인덱스 -> 데이터의 위치 정보를 모은 개체이기에 인덱스의 리프 레벨은 인덱스 전체구조 가장 중요한 역활
참고 자료 : 네이버 블로그
인덱스 저장 시 필요한 디스크 공간은 보통 테이블 저장
필요한 디스크 공간보다 작음 (WHY? 키-필드 다른 세부 항목 x)
"관계형 데이터베이스" 인덱스 - 테이블의 한 부분
클러스터드 인덱스
차이 : 물리적으로 행을 재배열
크기 : 인덱스 페이지 용량이 넌 클러스터드 인덱스 페이지 용량보다 작다.
선택도 : 30%이내에서 사용해야 좋은 선택
최대 갯수 : 테이블 당 1개
넌 클러스터드 인덱스
차이 : 물리적으로 재배열 하지 않는다.
크기 : 클러스터드 인덱스 페이지 용량보다 크다.
선택도 : 3% 이내에서 사용해야 좋은 선택
최대 갯수 : 테이블 당 249개
- 열의 물리적 순서는 인덱스 순서와 동일하지 않음.
- 전형적으로 JOIN, WHERE 그리고 ORDER BY 절에서 사용된 비 기본키 칼럼 위에 만들어짐
클러스터드와 넌 클러스터드 참고 블로그 : 규우82
참고 자료 : 위키백과
이미지 출처 : 손호성
위에 있는 이미지가 정확하게 설명이 되어져있는 것은 아니지만, 대략적으로 이런 식으로 되구나라고 기억하자.