Old/Oracle

12_INDEX

깨꾹2 2018. 11. 2. 09:04

인덱스

- DB 분야에 있어서 테이블에 대한 동작 속도를 높여주는 자료구조를 일컫는다.


인덱스의 장점

- 검색 속도가 빨라진다.


인덱스의 종류

1. B-TREE 인덱스(UNIQUE INDEX, NON-UNIQUE INDEX, COMPOSITE INDEX)

- 실시간으로 데이터 입력과 수정이 일어나는 환경에서 많이 사용

2. BITMAP INDEX

- 데이터 값의 종류가 적고 동일한 데이터가 많을 때 사용



자동생성

- 인덱스는 테이블 정의시 PK와 UNIQUE KEY 제약 조건을 정의할때 자동으로 생성된다.


수동생성

- 사용자는 인덱스를 수동으로 생성할 수 있다.


1. BITMAP INDEX

- 데이터 값이 적고 동일한 데이터가 많을 경우에 사용된다.

- BIT연산 수행가능

- 수정/변경/추가 가 적은 데이터에 적합

=> 컬럼이 추가될 때마다 BITMAP INDEX를 전부 새로 만든다

- 어떤 데이터가 어디에 있는지 BIT로 지도화 한다

ex) 남 여 남 남 여 => 1 0 1 1 0 으로 1을 남자 0을 여자로 표기


CREATE BITMPA INDEX [인덱스 이름

ON [테이블명](지정할 컬럼);


2. B-TREE - UNIQUE INDEX

- 인덱스 안에 있는 컬럼KEY 값에 중복되는 데이터가 없다

- UNIQUE 제약조건 생성시 UNIQUE INDEX도 자동으로 생성된다.


CREATE UNIQUE INDEX [인덱스 이름]

ON [테이블명](지정할 컬럼)


3 B-TREE - NON UNIQUE INDEX

- 중복되는 데이터가 들어가는 경우, KEY값에 중복된 값이 들어 갈 수 있다.

CREATE INDEX [인덱스 이름]

ON [테이블명](지정할 컬럼)



4. B-TREE - COMPOSITE  INDEX

- 컬럼을 조합하여 생성하는 인덱스(최대 16개까지 결합가능)

CREATE INDEX [인덱스 이름]

ON [테이블명]([컬럼명],[컬럼명]...);



인덱스 검색

SELECT index_name,table_name,uniqueness 

FROM USER_INDEXES;


인덱스 삭제

DROP INDEX [인덱스 이름];

'Old > Oracle' 카테고리의 다른 글

11_JOIN  (0) 2018.10.31
10_SubQuery  (0) 2018.10.31
09_CONSTRAINT  (0) 2018.10.30
08_COMMIT  (0) 2018.10.26
07_SELECT(AS, AND, OR, BTWEEN AND, IN, ISNULL, LIKE, ORDER BY, GROP BY, HAVING)  (0) 2018.10.23