Alpha Company
로그인
Alpha Company
로그인
데이터베이스 Index
Alpha, Orderly
·
2023년 12월 7일
팔로우
0
0
데이터베이스
목록 보기
13/13
Index
특정 검색 환경에서 레코드를 가져오는 시간을 빠르게 하기 위해 사용한다.
추가적인 접근 경로를 제공하는 "디스크 내부의 추가 파일" 이다.
디스크 내 파일의 위치를 변경하지 않고 접근 방식을 제공한다.
indexing field에 대한 효율적인 접근 방식을 제공한다.
추가설명
어떤 필드든 인덱스를 만드는데 사용될수 있다.
여러개도 있을수 있다.
레코드를 찾는것은 인덱스 필드에 기반한다.
인덱스를 정리하기 위해 보통 정렬과어 있거나, 트리 형태를 취한다.
Ordered Index
Indexing Field
단일 필드의 파일
각각의 값은 필드 값과 그에 연결되는 다른 블록의 포인터로 구성된다.
필드와 포인터만 저장되어 실제 데이터보다 크기가 매우 작다.
이진탐색을 통해 원하는 필드의 위치를 찾을수 있다.
Dense / Sparse
모든 레코드에 상응하는 엔트리가 있을경우 Dense
몇몇 레코드에 상응하는 엔트리가 없을경우 Sparse / Nondense
Primary Index
key가 정렬된 상태로 저장하는것
색인에 사용될 Primary key 와 디스크의 위치를 가지는 포인터로 구성된다.
이름이 key로 사용된 예시
bfr : 블록 별 엔트리 갯수
블록의 갯수에 따라 탐색 시간이 결정된다.
Primary Index - 문제점
레코드를 삭제/삽입 할때
제대로 된 위치에 넣어야 한다.
포인터의 위치를 바꾸어야 한다.
몇몇 저장된 데이터의 위치를 옮겨야 한다.
해결
레코드 갯수가 넘어가면 링크드 리스트로 이어준다.
Clustering Index
Key가 아닌 필드에 대해 인덱싱 한다.
nondense 하다.
같은 필드 값을 가지는 여러 레코드를 빠르게 가져오기 위해 사용한다.
key - 포인터 구조로 이루어진다.
2는 1번째 블럭에서 처음 나오기에 최대한 1블럭의 앞을 indexing 한다
Clustering Index - 문제점
여전히 삭제, 추가가 어렵다.
각각의 clustering field 에 대한 빈 공간을 남겨둬 해결 가능하다.
Secondary Indexes
부차적인 접근방법을 제공한다.
Primary 나 Clustering 은 둘중 하나만 있어야 하는 반면 이건 여러개 있어도 된다.
중복값을 포함할수 있다.
indexing field - 레코드/블럭/포인터 로 구성된다.
Secondary index는 같은 데이터 파일에 생성될수 있다.
Secondary - Key Field
하나의 레코드마다 하나의 index entry 를 가진다.
Dense!
Oracle Database - Index
자동으로 생성된다.
Primary Key / Unique 지정시 이를 Primary / Secondary index로 사용한다.
혹은 사용자의 필요에 따라 생성될수 있다.
EX. SSN보다 이름으로 직원을 더 많이 참조시 이 둘을 secondary index로 지정할수 있다.
쿼리 속도가 증가하나, 항상 권장되진 않는다.
권장
튜플이 너무 많을때
조인에 사용되는 칼럼 혹은 WHERE에서 조건으로 사용되는 컬럼
비권장
적은 튜플을 가질때
WHERE에서 조건으로 사용되지 않는 컬럼
생성 문법
중복 값이 있는 필드는 unique를 붙히지 않아도 된다.
DROP
Alpha, Orderly
만능 컴덕후 겸 번지 팬
팔로우
이전 포스트
데이타베이스 Multilevel Indexes
0개의 댓글
댓글 작성