본문 바로가기
Oracle/Index, Sequence, Synonym

데이터 베이스_ 오라클 [INDEX] 개요

by Super Santj 2019. 7. 3.

본 게시글의 주제 참고 내용

현재까지 오라클의 테이블, 뷰,트랜잭션을 기록하였다. 오라클의 2/3는 대략 저장하였다고 봐도 무방하다. 아닐수도있다 오라클은 광범위 하기때문에 하지만 내가 필요한 오라클의 정보의 2/3는 모두 기록하였다고 봐도 괜찮을것같다는 의미이다. 이제 남은건, **인덱스, 시컨스**, 동의어(synonym)이 남아있는 상태이다.

인덱스 (index) _

책갈피와 비슷한 역할이다. 자주사용이 되는 컬럼에 부여를 하는것이다. 즉 자주 검색이 되는 필드에 부여를 한다. (검색목적) => where 조건식에 언급되는 것! 그리고 검색 속도가 빠른이유로는 컴퓨터는 인덱스가 부여된 필드먼저 찾아준다. 그리고 데이터의 저장공간이 따로 필요하다. 사용 되는 목적은 검색 속도를 향상시키기 위해 사용된다. 아래와 같이 요약을 할 수가 있다. 

- 인덱스가 부여된 필드 먼저 찾아주기에 검색속도가 빠르다. 즉 [빠르게 찾기 위해서,인덱스 존재 이유] <= 장점

- 데이터 저장공간이 따로 필요하다, 인덱스를 생성하는데 시간이 소요된다 <= 단점

참고 사항_

primary key(기본키) 이것은 not null + unique 키가 부여된다. 여기서 unique키는 인덱스와 동일하다. 프라이머리키를 부여하는것은 unique index가 자동으로 부여가 되는것이다.

인덱스의 종류_

1. unique index키

프라이머리 키를 부여하면 자동으로 생성이 되는것임. 하지만 본 게시글에서 말하는 인덱스 키는 아래 2. non-unique index 키를 말하고자 하는것이다.

2. non-unique index키 ** 본 게시글의 주제 **

해당 키는 중복을 허용해주는 필드에 부여한다. 예를 들어 중복이 되는 직책, 성별, 이름, 상품명 등 중복되는 필드를 검색할때 인덱스 키를 넣어 보다 빠르게 검색을 하고자 하는것이다.

**중요**

주의할점_

수정이 자주되는 필드에 인덱스키를 부여하면 안된다. 이유는 바뀔때마다, 인덱스 키를 변경해줘야하기에 속도가 느려질 가능성이 매우 높다. 안하느니만 못하다는 이야기이다.

즉 자주 검색을하며, 자주 변경이 안되는 필드에 지정을 한다면 효율을 굉장히 높일수 있는 방식이다. 

보통 이름, 상품 등 과같이 현실에서 변경하기 까다로운 필드에 적용을 하도록 기억하자.

**중요**

 

댓글