오라클 인덱스 생성(CREATE) 및 삭제(DROP)
인덱스 생성
일단 인덱스는 다음과 같이 생성한다.
인덱스 종류는 많지만 많이 쓰는 것 위주 순으로 설명 하겠습니다.
CREATE INDEX 인덱스 명 ON 테이블명( 컬럼1, 컬럼2.... ); |
아래와 같이
테이블 명 : SAMPLE, 컬럼 명은 ID, NAME
인 테이블이 있다고 하자.
CREATE TABLE SAMPLE ( ID INT, NAME VARCHAR(10) ); |
위의 테이블의 인덱스는 다음과 같이 한다.
CREATE INDEX IDX_SAMPLE ON SAMPLE( ID ); |
IDX_SAMPLE 은 인덱스 명으로 사용자가 임의로 정해 주지만 IDX (INDEX 약칭 ) 라고 명시는 해주는 것이 좋은 습관이다.
인덱스 왜 만드나요?
우리는 DML문에 WHERE 뒤에 검색에 대한 조건을 단다.
데이터가 100만건이 있다면 내가 원하는 조건을 찾을려면 100만번을 다 건건이 찾을려면 시간이 걸릴 것이다.
이러한 검색 시간을 단축 하기 위해서 인덱스를 생성 하며 인덱스를 생성하면 검색 시간이 많이 단축 될 것이다.
인덱스 삭제
인덱스 삭제는 다음과 같이 한다.
DROP INDEX 인덱스 명; |
앞에서 생성한 인덱스 삭제는 다음과 같이 한다.
DROP INDEX IDX_SAMPLE; |
UNIQUE 인덱스 생성
해당 컬럼에 중복 값을 허용하지 않고 인덱스를 생성한다.
CREATE UNIQUE INDEX 인덱스 명 ON 테이블명( 컬럼명 ); |
SAMPLE 테이블에 UNIQUE INDEX를 생성해 보자.
CREATE UNIQUE INDEX IDX_SAMPLE ON SAMPLE( ID ); |
부연 설명으로 위와 같이 인덱스가 생성 되면 SAMPLE의 ID 값이 같은 값이 INSERT가 안된다.
같은 값을 INSERT를 할라고 하면 다음과 같은 메시지가 출력 된다.
ORA-00001: unique constraint (JINK1982.IDX_SAMPLE) violated |
'인프라 > Oracle' 카테고리의 다른 글
[Oracle] 정렬(ORDER BY) (0) | 2016.11.22 |
---|---|
[Oracle] 오라클 무료 툴 SQL Developer 설치 (0) | 2016.11.19 |
[Oracle] 권한 생성(GRANT), 권한 삭제(REVOKE) (0) | 2016.11.14 |
[Oracle] 데이터 입력(INSERT), 조회(SELECT), UPDATE(수정), DELETE(삭제) (0) | 2016.11.14 |
[Oracle] 테이블 생성(Create), 제거(Drop), 수정(Alter) 사용법 (0) | 2016.11.13 |