인덱스, Index
- 색인 이라고 한다.
- 테이블의 검색(탐색) 속도 향상을 위한 데이터베이스 객체
- 테이블의 컬럼을 기준으로 적용하는 객체
- 하나의 테이블에 여러 개 인덱스를 적용하는 것도 가능하다.
- 테이블과는 독립적으로 생성되는 오브젝트
- 테이블의 컬럼의 의존적
- UNIQUE KEY(유일 키, UK) 제약 사항이 걸린 컬럼은 인덱스를 자동으로 생성한다.
- 테이블의 컬럼값을 전부 추출해서 인덱스를 생성한다.
- 인덱스에는 기준 컬럼의 값과 원본데이터의 위치를 저장하고 있다.
인덱스의 장, 단점
- 장점
- 테이블 탐색할 때 전체탐색(FULL SCAN) 횟수를 줄여준다.
- 어쩔 수 없이 전체탐색을 해야할 때 시스템 성능 저하를 약간 줄여줄 수 있다.
- 단점
- 인덱스 객체를 생성하는 데 시간이 필요하다.
- 인덱스 객체를 위한 별도의 공간이 필요하다.
- 검색 성능은 향상되지만 추가, 삭제, 수정 작업에는 큰 도움이 되지 않는다.
- 추가, 삭제, 수정 작업이 테이블에 발생하면 인덱싱(인덱스를 만드는 것) 작업을 다시 수행해야 한다.
모든 단점을 장점 하나가 상쇄하기 때문에 만드는 것은 거의 필수인듯..
인덱스 생성이 필요한 경우
- 데이터가 충분히 많아야 한다.
- 약 1000건 이상일 때
- WHERE 구문에서 조건으로 특정 컬럼이 많이 사용될 때
- JOIN 구문(ON 절) 에서 특정 컬럼이 많이 사용될 때
인덱스 생성이 불 필요한 경우
- 데이터가 적을 때
- 수 천 건 미만
- SELECT 보다 INSERT, UPDATE, DELETE 가 빈번한 경우
- SELECT와 INSERT, UPDATE, DELETE 모두 빈번한 경우는 인덱싱을 생각해봐야한다.
- 인덱스가 적용된 조회 결과가 전체 행의 상당 부분을 차지할 때
- 약 15%
인덱스 종류
- NON - Unique INDEX
- 중복을 허용하는 인덱스
- Unique INDEX
- 중복을 허용하지 않는 인덱스
- Composite INDEX
- 복합 컬럼 인덱스
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle] 오라클 Drop table 테이블 삭제 (0) | 2020.09.29 |
---|---|
[Oracle] 오라클 ALTER TABLE, 테이블 수정 (0) | 2020.09.29 |
[Oracle] 오라클 스키마, Schema (0) | 2020.09.28 |
[Oracle] 데이터베이스의 식별관계, 비식별관계 (0) | 2020.09.28 |
[Oracle] 오라클 데이터베이스의 제약조건, 제약사항, Constraints (0) | 2020.09.28 |