본문으로 건너뛰기
enable_indexonlyscan

enable_indexonlyscan

버전기본값context타입
14onuserboolean
15onuserboolean
16onuserboolean
17onuserboolean
18onuserboolean
19onuserboolean

planner가 index-only scan plan을 후보로 고려할지 정한다. 기본값은 on이다. enable_indexscan도 켜져 있어야 index-only scan이 후보에 오른다.

index-only scan은 쿼리가 요구하는 컬럼이 전부 인덱스에 들어 있을 때 테이블(heap)을 읽지 않고 인덱스만으로 결과를 만드는 방식이다. 다만 row의 가시성 판단이 필요하기 때문에, visibility map에서 all-visible로 표시되지 않은 page에 대해서는 결국 heap을 확인해야 한다. 따라서 실제 효율은 vacuum이 visibility map을 얼마나 최신으로 유지하고 있느냐에 달려 있다.

운영 노트: off는 진단 용도다. index-only scan이 기대만큼 빠르지 않다면 먼저 EXPLAIN ANALYZE의 Heap Fetches 수치를 확인한다. 이 값이 크면 파라미터가 아니라 vacuum(visibility map 갱신) 쪽을 손봐야 한다.

출처: PostgreSQL 18 문서