포스트

2023-04-18-ORACLE-index

인덱스(Index)

  • SQL 명령문의 처리 속도를 향상시키기 위해서 컬럼에 대해서 생성하는 오라클 객체이다.
  • 데이터를 빠르게 검색하기 위한 오브젝트이다.
  • 인덱스는 테이블에 종속되어 있으며 하나의 테이블에 다수의 인덱스를 생성할 수 있다.

인덱스의 장점

  • 검색속도가 빨라지고 시스템에 걸리는 부하를 줄여서 시스템 젂체 성능을 향상시킬 수 있다

인덱스의 단점

  • 인덱스를 위한 추가 저장 공간이 필요하고, 인덱스를 생성하는데 시간이 걸린다.
  • 따라서 데이터의 변경 작업(INSERT/UPDATE/DELETE)이 자주 일어날 경우에는 오히려 성능이 저하된다

인덱스 작성 방법

1
2
3
4
5
CREATE [UNIQUE] INDEX 인덱스명
    ON 테이블명 (
                컬럼명
               ,컬럼명 | 함수명, 함수계산식
               );

오라클 데이터베이스의 인덱스 종류

일반 인덱스

  • B-TREE 구조에 정렬된 열 값과 ROWID를 저장하는 인덱스

    비트맵 인덱스

  • 비트맵을 사용하여 열 값을 저장하는 인덱스

    함수 기반 인덱스

  • 열의 일부에 함수나 표현식을 사용한 인덱스

    도메인 인덱스

  • 애플리케이션 도메인에 따라 사용자가 생성할 수 있는 인덱스

일반 인덱스는 다음과 같이 사용 가능하다.

인덱스설명
IOT인덱스 구조 테이블(index-organized table)
리버스 키 인덱스열 값이 반전(reverse)되어 저장된 인덱스
내림차순 인덱스열의 일부가 역순으로 정렬된 인덱스
클러스터 인덱스인덱스 클러스터의 검색을 위해 사용되는 인덱스

인덱스는 열의 개수에 따라 아래와 같이 구분된다.

인덱스설명
단일(single) 인덱스1개의 열로 구성된 인덱스
복합(composite) 인덱스2개 이상의 열로 구성된 인덱스

값의 고유성에 따라 아래와 같이 구분할 수도 있다.

인덱스설명
UNIQUE 인덱스고유한 값으로 구성된 인덱스
NOUNIQUE 인덱스고유하지 않을 수 잇는 값으로 구성된 인덱스
  • 출처 : 불친절한 SQL 프로그래밍, 메타버스 강사님 강의
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.