Index

Jinmin Kim·2022년 8월 6일
0

Index란?

데이터베이스는 검색을 할때에 메모리(Cache)에 있는 부분들을 먼저 조회하고,
그 메모리에 원하는것이 없을경우에 데이터베이스를 한 row들을 하나씩 찾기 시작하는데 이 메모리에 Index로 등록을 해두면 그 데이터베이스의 위치를 저장 해두는것과 같아서 그 데이터의 위치를 알수있기 때문에 해당하는 데이터를 찾기가 쉬워진다.
오라클은 테이블 정의 시 PRIMARY KEY와 UNIQUE KEY 제약조건을 정의할 때 자동으로 생성한다.

Index 생성법

--문법
CREATE INDEX [인덱스명] ON [테이블명](컬럼1, 컬럼2, 컬럼3.......)

--기본
CREATE INDEX EX_INDEX ON B(B_NO, B_TITLE);

--컬럼 값 중복 허용 x인 인덱스 생성
CREATE[UNIQUE] INDEX EX_INDEX ON B(B_NO, B_TITLE);

Index Rebuilding

- 인덱스 리빌드를 하는 이유
DB의 쿼리 수행 속도 저하의 문제 중 하나는 쿼리 튜닝이 문제일 수도 있지만, 
생성한 인덱스에서 INSERT, UPDATE, DELETE 등의 작업을 반복하면서 
인덱스의 밸런스가 깨졌을 경우의 가능성도 있다.

인덱스의 밸런스가 깨졌다는 의미는생성된 인덱스는 트리구조를 가지는데 
데이터들이 무작위로 삽입, 수정, 삭제 등이 오랫동안 일어나면 트리의 
한쪽이 무거워져 전체적으로 트리의 깊이가 깊어진다.
이것을 인덱스의 밸런스가 깨졌다고 얘기하고, 이러한 현상으로 인해 인덱스의 
검색 속도가 떨어지므로 주기적인 리빌딩 작업을 하는 것이 좋다.

Index rebuild query

ALTER INDEX [인덱스명] REBUILD;

Index all rebuilding

SELECT 'ALTER INDEX '||INDEX_NAME||' REBUILD; 'FROM USER_INDEXES;

참고 : https://choicode.tistory.com/28

profile
Let's do it developer

0개의 댓글