본문으로 건너뛰기

enable_bitmapscan

planner가 bitmap scan plan을 후보로 고려할지 정합니다. 기본값은 on입니다.

bitmap scan은 두 단계로 동작합니다. 먼저 Bitmap Index Scan이 인덱스를 scan해 조건에 맞는 row의 위치를 메모리 안의 bitmap으로 모으고, 이어 Bitmap Heap Scan이 그 bitmap을 따라 테이블 page를 물리적 순서로 읽습니다. page를 정렬된 순서로 한 번씩만 읽으므로 일반 index scan보다 random I/O가 줄어, 조건에 맞는 row가 어느 정도 많을 때 index scan과 sequential scan 사이의 중간 지대를 담당합니다. 여러 인덱스의 bitmap을 AND/OR로 결합할 수 있다는 점도 장점입니다.

노트

운영 노트: planner가 bitmap scan을 고른 쿼리에서 세션 단위로 끄고 EXPLAIN (ANALYZE)를 비교하면 다른 scan 방식과의 cost 차이와 실제 성능 차이를 확인할 수 있습니다. 전역 설정에서 끄는 것은 피합니다.

출처: PostgreSQL 18 문서