티스토리 뷰

안녕하세요 강정호입니다.

오늘은 Composite INDEX(결합 인덱스)에 대해서 공부해보겠습니다.

 

[결합 인덱스 정의]

결합 인덱스란 인덱스를 생성할 때 두 개 이상의 컬럼을 합쳐서 인덱스를 만드는 것을 말합니다.

 

용도 : 주로 SQL 문장에서 WHERE절의 조건 컬럼이 2개 이상 AND로 연결되어 함께 사용되는 경우에 많이 사용하게 됩니다. 

 

[예제]

EMP 테이블에 인원 100명이 있는데, 그 중에서 남자 50명, 여자 50명이 있다.

남자 중에 이름이 'SMITH'인 사람이 단 2명이 있다.

성별이 남자 중에서 이름이 SMITH인 사람을 찾아라

 

쿼리문

SELECT ename, sal
FROM emp
WHERE ename = 'SMITH'
AND sex = 'M'
;

결합 인덱스 생성 구문

CREATE INDEX idx_emp_comp
ON emp( ename, sex );

 

결합 인덱스는 AND 조건으로 검색되는 경우 성능에 아주 중요한 역할을 합니다. 두개 이상의 조건이 OR로 조회되는 경우는 결합 인덱스를 만들면 안됩니다.

 

결합인덱스를 생성할 때 컬럼 순서가 중요한 이유

위의 CASE2에서 NAME 컬럼으로 최대한 걸러준 후, SEX 컬럼으로 검색하여 효율성을 높였다. 그래서 결합인덱스에서는 첫번쨰 조건에서 최대한 많은 데이터를 걸러서 두번쨰 검사를 쉽게 만들어 주어야 한다.

 

결합 인덱스 컬럼 구성 순서 : http://www.gurubee.net/lecture/2229

 

결합 인덱스를 선정하는 우선순위

아직도 많은 사이트에서 단일 컬럼 인덱스만을 고집하는 경우가 많다. 과연 데이터를 액세스하기 위해 우리는 단일 컬럼 인덱스를이용해야 하는 것..

www.gurubee.net

 

댓글