오라클 인덱스 생성(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 



반응형

+ Recent posts