INDEX

INDEX의 기본 개념_인덱스 종류

한기리 2021. 7. 3. 22:03
728x90
320x100

인덱스 종류

 

인덱스를 구성하는 컬럼 수에 따라 단일 인덱스, 복합 인덱스로 구분된다.

 

- 단일 인덱스(Single column index) : 인덱스에 하나의 컬럼만 사용

- 복합 인덱스(Composite index) : 인덱스에 두 개 이상의 컬럼을 사용

 

 단일 인덱스는 하나의 컬럼만으로 구성한다. 주로 PK 속성이 단일 컬럼일 때 사용한다. 반면에 복합 인덱 스는 여러 개의 컬럼으로 구성한다. 잘 만들어진 하나의 복합 인덱스는 여러개의 인덱스를 대신할 수 있 으며, 여러 SQL의 성능을 커버할 수 있다. 복합 인덱스는 멀티 컬럼 인덱스 또는 결합 인덱스라고도 한다.

 

또 다른 방법으로 인덱스를 구성하는 컬럼 값들의 중복 허용 여부에 따라 유니크 인덱스, 비유니크 인덱스로 구분된다.

 

- 유니크 인덱스(Unique index) : 인덱스 구성 컬럼들 값에 중복을 허용하지 않는다.

- 비유니크 인덱스(Non-unique index) : 인덱스 구성 컬럼들 값에 중복을 허용한다.

 

유니크 인덱스로 지정된 컬럼들에는 중복된 값을 저장하지 못한다. PK 제약 조건에는 무조건 유니크 인 덱스가 구성된다. 데이터베이스 설계 시점부터 업무적으로 유니크한 속성들을 파악해서 유니크 인덱스 를 만들어 주는 것이 좋다.

 

인덱스의 물리적인 구조에 따라 B*트리 인덱스, 비트맵 인덱스로 구분한다.

 

- B*Tree index

- Bitmap index

 

Bitmap index는 값의 종류가 많지 않은 컬럼에 사용한다. 예를 들어, 주문유형에 대한 값이 '주문대기, 주 문완료' 두 종류 값만 있다면 Bitmap index를 고려할 수 있다.

 

 대용량 테이블에는 파티션을 구성하는 것이 좋다. 대용량 테이블을 파티션 없이 인덱스만 만들어 사용하 기에는 성능에 한계가 있다. 그뿐만 아니라 오래된 데이터는 별도 저장소로 백업한 후 주기적으로 지우 는 것이 데이터베이스 관리 비용과 성능에 도움이 된다. 파티션 테이블에는 파티션된 인덱스를 만들 수 있다. 파티션 된 인덱스는 글로벌 인덱스, 로컬 인덱스 두 가지로 구분할 수 있다.

 

- 글로벌 인덱스(Global index)

- 로컬 인덱스(Local index)

728x90
320x100