오라클 - 인덱스(INDEX)란? 생성 변경 삭제

반응형

인덱스(INDEX)

  • 인덱스는 데이터 검색을 빨리 하기 위해 사용한다.
  • 하지만 인덱스를 사용했다고 해서 데이터 검색이 무조건 빨라지는 것은 아니다.
  • 데이터의 양이 별로 없거나 데이터 값이 몇 종류 안되어 선택도가 높으면
  • 인덱스가 없는 게 더 빠를 수 있다.

선택도 = '1 / 서로 다른 값의 개수'

인덱스 생성에 앞서 다음의 고려사항

  1. 인덱스는 WHERE 절에 자주 사용되는 속성이어야 한다.
  2. 인덱스는 조인에 자주 사용되는 속성이어야 한다.
  3. 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있다.(테이블 당 4~5개 정도 권장)
  4. 속성이 가공되는 경우 사용하지 않는다.
  5. 속성의 선택도가 낮을 때 유리하다.

인덱스의 생성

CREATE [REVERSE] [UNIQUE] INDEX[인덱스이름]
ON TABLE 이름 (컬럼|ASC |DESC] [{, 컬럼 [ ASC | DESC]}…]){;}
CREATE INDEX IX_BOOK ON BOOK(BOOKNAME);
CREATE INDEX IX_BOOK2 ON BOOK(PUBLISHER, PRICE);

인덱스의 변경

ALTER [REVERSE] [UNIQUE] INDEX 인덱스 이름
[ON {ONLY} 테이블 이름 (컬럼이름, [{, 컬럼이름}] REBUILD[;]
ALTER INDEX IX_BOOK REBUILD;

인덱스의 삭제

DROP INDEX 인덱스이름[;]
DROP INDEX IX_BOOK;

 

 

728x90
반응형