티스토리 뷰

Naver Blog Backup

B-tree 인덱스

OpenUiz 2015. 5. 27. 17:28
반응형
(2007/01/02 18:34 작성)



출처: http://blog.naver.com/zordtwo/110011537204

1. B-tree 인덱스의 구조

                     [ B-tree 인덱스의 구조 ]


 ◈  B-트리 인덱스 구조

  - 인덱스 제일 위는 root로 인덱스의 다음 레벨을 가리키는 엔트리를 포함하고 있습니다. 
  - 다음 레벨은 branch 블록으로 마찬가지로 다음 레벨의 인덱스 블록을  가리킵니다. 
  - 최하층 레벨은 leaf노드로 테이블의 행을 가리키는 인덱스 엔트리를  포함하고 있습니다. 
  - leaf블록은 키 값의 내림차순은 물론 오름차순의 키 값으로 인덱스를 검색하는데 편리하도록
    양방향(doubling)으로 연결(link)되어 있습니다.
    
   
 ◈ 인덱스 Leaf 엔트리의 형식
   - 열 수와 잠금(locking)정보를 저장하는 엔트리 헤더
   - 키의 열 길이와 열 값이 차례로 정의된 쌍(pair)으로 된 값
     (이들 쌍의 갯수가  인덱스에 들어갈 수 있는 열의 최대치입니다.)
   - 키값을 포함하는 행의 ROWID
   - Leaf Block에만 ROWID Bolck이 있습니다.
 


2. 문법

                                    [인덱스 생성 문법]  

 - UNIQUE

 : unique 인덱스를 지정하는데 사용합니다.(NONUNIQUE가 기본값입니다.)

 - schema 

 : 인덱스/테이블의 소유자입니다.

 - index

 : 인덱스 이름입니다.

 - table

 : 테이블 이름입니다.

 - column

 : 열 이름입니다.

 - tablespace

 : 인덱스가 생성될 테이블스페이스를 나타냅니다.

 - PCTFREE

 : 생성시 새 인덱스 엔트리를 수용하기 위해 각 블록에 예약된 공간의 총량입니다.
   (총 공간에서 블록 헤더를 뺀 것을 백분율로) 

 - INITRANS

 : 각 블록에 미리 할당된 트랜잭션 엔트리의 수를 지정합니다. 
   (기본값은 최소값인 2 입니다.)

 - MAXTRANS

 : 각 블록에 할당될 수 있는 트랜잭션 엔트리의 수를 제한합니다. 
   (기본값은 255 입니다.)

 - STORAGE

 : 익스텐트가 인덱스에 할당되는 방법을 결정하는 스토리지 절을 나타냅니다.

 - LOGGING

 : 인덱스의 생성과 이후의 인덱스에 대한 작업이 리두 로그 파일에 기록 되도록
   명시합니다.(기본값) 

 - NOLOGGING

 : 인덱스 생성과 특정 유형의 데이터 로드가 리두 로그 파일에 기록되지 않도록 
   명시합니다.

 - NOSORT

 : 행이 데이터베이스에 오름차순으로 저장되어 있음을 명시합니다. 
   이 경우 오라클 서버는 생성시 행을 정렬하지 않습니다



3. B-tree인덱스 생성 예제

SQL>CREATE INDEX scott.emp_ename_idx
       ON scott.emp(ename)
       TABLESPACE idx
       PCTFREE 30
       STORAGE(INITIAL 200K
                       NEXT 200K
                       PCTINCREASE 0
                       MAXEXTENTS 50);

인덱스가 생성되었습니다.    

 


반응형

'Naver Blog Backup' 카테고리의 다른 글

Using MySQL Full-text Searching  (0) 2015.05.27
[MySQL] Fulltext 를 이용한 검색  (0) 2015.05.27
[MySql] JOIN 문 left outer join  (0) 2015.05.27
[MySQL] 최적화 설계  (0) 2015.05.27
[MySQL] '/tmp/mysql.sock' 에러 복구방법  (0) 2015.05.27
반응형
최근에 달린 댓글