본문 바로가기

PostgreSQL

BRIN

BRIN

BRIN PostgreSQL 9.5부터 제공되는 인덱스 유형이다.

BRIN은 블록 내의 MIN/MAX 값을 이용해서 블록 단위로 인덱싱한다.

이로 인해 인덱스 크기는 매우 작아진다는 장점이 있다. 이러한 장점으로 인해, 디스크 공간이 부족한 경우에는 BRIN을 선택하기도 한다.

BRIN EXADATA Storage 인덱스는 매우 흡사하다

 

BRIN의 특성

BRIN의 크기는 매우 작다. 예를 들어, 1Gb 테이블인 경우에 BRIN의 크기는 6블록이다. (1MB 단위로 1개의 Min/Max 값을 저장하기 때문이다)

1건을 읽어도 128 블록 (1 MB)를 읽는다.

BRIN Index Only Scan 방식보다는 느리다. 왜냐면 반드시 테이블을 액세스하기 때문이다.

BRIN 생성 후에 입력된 레코드들은 Vacuum을 수행해야만 BRIN에 적용된다.

BRIN Row Level 락을 지원한다.

 

Partial Index

PostgreSQL은 인덱스 생성 시에 WHERE 조건을 제공한다.

PostgreSQL NULL 값도 인덱스에 포함된다.

create index t10_flag_idx on t10(flag) where flag='N’;

'PostgreSQL' 카테고리의 다른 글

PostgreSQL 파티션  (0) 2021.04.23
Parallel Processing (병렬 처리)  (0) 2021.04.23
힌트의 필요성과 PG_HINT_PLAN  (1) 2021.04.23
Query Rewrite (쿼리 변환)  (0) 2021.04.23
JOIN  (0) 2021.04.23