다중 컬럼 인덱스

다중 컬럼 인덱스 (Multicolumn Indexes)

여러분, 오늘은 PostgreSQL에서 두 개 이상의 컬럼을 함께 묶어 인덱스를 만드는 방법을 살펴볼게요. 단일 컬럼 인덱스만으로는 쿼리 성능이 부족할 때, 다중 컬럼 인덱스가 어떻게 동작하는지 이해하면 효율적인 인덱스 설계에 큰 도움이 됩니다. 이번 섹션에서는 B-tree, GiST, GIN, BRIN 인덱스 유형별 특징과 주의사항까지 차근차근 설명드릴게요.

출처: 공식문서

기본 개념: 두 개 이상의 컬럼에 인덱스 정의하기

인덱스는 테이블의 여러 컬럼에 걸쳐 정의할 수 있어요. 예를 들어, 다음과 같은 테이블이 있다고 해볼게요.

CREATE TABLE test2 (
  major int,
  minor int,
  name varchar
);

(예를 들어, 여러분의 /dev 디렉터리를 데이터베이스에 보관하고 있다고 상상해 보세요.) 그리고 다음과 같은 쿼리를 자주 실행한다면:

SELECT name FROM test2 WHERE major = constant AND minor = constant;

이때 majorminor 컬럼을 함께 묶어 인덱스를 정의하는 것이 적절할 수 있어요.

CREATE INDEX test2_mm_idx ON test2 (major, minor);

지원되는 인덱스 유형

현재 다