제 2판
저자 : 토마스 카이트
저서 :
옮김 : 오선경, 한준희, 유동오, 임영섭, 김창배
펴낸 곳: 제이펍
초판 :
2판 2쇄 : 2011년 12월 16일
CHAPTER 11. 인덱스
- 애플리케이션 개발 단계 중 인덱스가 가장 나중에 설꼐되는 것을 자주 볼 수 있는데, 이것은 잘못된 접근방법이라고 생각한다.
- 개발 초기부터 데이터를어떻게 사용할지 이해하고 있다면, 애플리케이션에서 사용될 인덱스를 미리 생성할 수 있어야 한다.
- 개발 초기에 언제 어떻게 인덱스를 설계해야 하는지를 고려한다면, 향후 튜닝에 소비되는 많은 시간을 절약하게 될 것이다.
- 이 장의 주요 목적
1) 인덱스를 전반적으로 살펴본다.
2) 언제, 어디서 인덱스를 사용할 것인가를 살펴본다.
- 개발자는 인덱스를 잘 알고 있어야 하며, 애플리케이션에 어떠한 영향을 줄 것인지, 언제 사용되는지, 어떤 때에 사용하면 안 되는지 등에 대한 것을 잘 알아야 한다.
- DBA는 인덱스 크기의 증가, 인덱스 저장공간의 활용방법, 그리고 다른 물리적 요소를 고려해야 한다.
오라클 인덱스 개요 552
- 오라클의 다양한 인덱스 유형
1) B*Tree 인덱스 : 보편적으로 언급되는 인덱스, 가장 자주 사용되는 일반적인 인덱스
: 인덱스 구조 테이블
: B*Tree 클러스터 인덱스
: 내림차순 인덱스
: 리버스 키 인덱스
2) 비트맵 인덱스
3) 비트맵 조인 인덱스
4) 함수 기반 인덱스
: 컬럼값 자체가 아니라 컬럼에 대한 함수의 계산된 결과가 저장되는 B*Tree 또는 비트맵 인덱스를 말한다.
: 물리적으로 저장되는 컬럼이 아니라 가상컬럼(또는 파생 컬럼)의 인덱스라고 생각할 수 있다.
: 미리 계산되어 인덱스로 저장 -> 쿼리의 수행을 향상
5) 어플리케이션 도메인 인덱스
: 오라클 내부 또는 외부에서 사용자가 만들어서 저장하는 인덱스
: 사용자가 옵티마이저에 지정(사용 인덱스 선택, 실행비용 지정)
: 옵티마이저가 인덱스 사용여부를 결정(위 정보를 이용)
: 생성된 인덱스는 일반적인 인덱스 구조를 사용할 필요가 없다는 것을 기억해야 한다.
B*Tree 인덱스 554
- 데이터베이스에서 가장 일반적으로 사용되는 인덱스 구조
- 바이너리 검색 트리와 유사하게 수행
- 인덱스의 목표 : 오라클이 데이터를 검색할 때 수행 속도를 최소화하는 것
- 리프 노드(leaf node) or 리프 블록(leaf block) : 트리의 최하위 레벨 블록
: 모든 인덱스 키와 인덱싱되는 로우를 가리키는 rowid를 포함
- 브랜치 블록(branch block) : 리프노드 위의 블록, 인덱스 구조를 이동하는 데 사용
- 인덱스 범위 스캔 : 리프 노드에서 싲가점을 찾은 다음에는 값의 정렬된 순서로 읽어나가기만 하면 된다.
: 더이상 인덱스 구조를 이동할 필요가 없고, 필요한 리프 노드를 통해 앞으로 뒤로 이동하면 된다.
: 인덱스 리프 노드는 실제로 양 방향 linked list이다.
- B*Tree 특성 : 모든 리프 블록이 트리 안에서 모두 동일한 레벨에 존재 한다.
: 동일한 레벨(인덱스의 높이) - 어떠한 조건이라도 루트 블록부터 리프 블록까지는 동일한 숫자의 블록을 방문한다.
: 인덱스의 높이가 균현적이다
1) 인덱스 키 압축
2) 리버스 키 인덱스
3) 내림차순 인덱스
4) 언제 B*Tree 인덱스를 사용해야 하는가?
비트맵 인덱스 583
함수 기반 인덱스 593
- 함수 기반 인덱스 : 계산된 컬럼에 인덱스를 생성하여 쿼리에서 이 인덱스를 사용하는 것
- 함수 기반 인덱스를 사용해야 하는 이유
: 구현하기 쉬울 뿐만 아니라 효과를 즉시 알 수 있다.
: 기존 애플리케이션의 로직이나 질의를 전혀 바꾸지 않고 수행 속도를 개선할 수 있다.
'책을 읽.쓰.' 카테고리의 다른 글
<비즈니스 활용 사례로 배우는 데이터 분석 : R> UPDATE.20200409 (0) | 2020.03.31 |
---|---|
<주식시장은 어떻게 반복되는가> [필사][리뷰][정리](20200330) (6) | 2020.03.09 |
<파이썬으로 웹 크롤러 만들기> (0) | 2020.02.20 |
<리눅스 프로그래밍 : 원리와 실제> (0) | 2020.02.18 |
<재무제표 모르면 주식투자 절대로 하지마라> (8) | 2020.02.11 |