1. Index
- 데이터베이스에서 데이터 검색 성능의 향상을 위해 테이블 열에 사용하는 객체를 의미한다.
- 사용자가 직접 특정 테이블의 열에 지정할 수도 있지만, 열이 Primary key 또는 Unique key일 경우에는 자동으로 생성된다.
/* Index 예시1 : 유저가 소유한 인덱스 정보 확인 */
SELECT *
FROM USER_INDEXES;
/* Index 예시2 : 유저가 소유한 인덱스 컬럼 정보 확인 */
SELECT *
FROM USER_IND_COLUMNS;
1.1 Index 생성
/* CREATE INDEX */
CREATE INDEX 인덱스이름
ON 테이블이름 (
열이름1 ASC or DESC,
열이름2 ASC or DESC,
... ,
열이름n ASC or DESC
);
- 데이터베이스에서 자동으로 생성해 주는 인덱스 외에 사용자가 직접 인덱스를 만들 때는 CREATE문을 사용한다.
- 인덱스의 정렬 옵션을 지정하지 않으면 기본값은 오름차순(ASC)으로 지정된다.
/* CREATE INDEX 예시 */
CREATE INDEX IDX_EMP_SAL
ON EMP(SAL);
1.2 Index 삭제
/* DROP INDEX 예시 */
DROP INDEX 인덱스이름;
- DROP 명령어를 사용하여 인덱스를 삭제할 수 있다.
/* DROP INDEX 예시 */
DROP INDEX IDX_EMP_SAL;
1.3 Index 종류
종류 | 설명 |
Single index | 하나의 열로 만들어지는 인덱스이다. |
Composite(Concatenated) index | - 두 개 이상 열로 만들어지는 인덱스이다. - WHERE절의 두 열이 AND 연산으로 묶이는 경우가 해당된다. |
Unique index | - 열에 중복 데이터가 없을 때 사용한다. - UNIQUE 키워드를 지정하지 않으면 NON UNIQUE INDEX가 기본값이다. |
Function based index | 열에 산술식 같은 데이터 가공이 진행된 결과로 인덱스를 생성한다. |
Bitmap index | 데이터 종류가 적고 같은 데이터가 많이 존재할 때 주로 사용한다. |
/* Single index */
CREATE INDEX IDX_NAME
ON EMP(SAL);
/* Composite(Concatenated) index */
CREATE INDEX IDX_NAME
ON EMP(SAL, ENAME, ...);
/* Unique index */
CREATE UNIQUE INDEX IDX_NAME
ON EMP(EMPNO);
/* Function based index */
CREATE INDEX IDX_NAME
ON EMP(SAL*12 + COMM);
/* Bitmap index */
CREATE BITMAP INDEX IDX_NAME
ON EMP(JOB);
참고
- 『오라클로 배우는 데이터베이스 입문』
'Database' 카테고리의 다른 글
Sequence (0) | 2021.10.28 |
---|---|
View (0) | 2021.10.28 |
Data Dictionary (0) | 2021.10.26 |
DDL(Data Definition Language) (0) | 2021.10.25 |
Transaction & Session (0) | 2021.10.22 |