Index-only scan
쿼리 필요한 모든 컬럼이 인덱스에 있으면, PostgreSQL 이 테이블 안 건드리고 답 가능 — index-only scan. 가능한 가장 빠른 plan: I/O 절반, 훨씬 좋은 캐시 동작.
INCLUDE 절
CREATE INDEX ... ON t (a) INCLUDE (b, c) 가 a 키 + b/c 옆에 저장 (키 일부 아님, 그냥 같이 감) 인덱스 생성. a 필터 + b/c 선택 쿼리가 키에 추가 컬럼 부풀리지 않고 index-only scan.
VACUUM 과 visibility map
Index-only scan 은 PostgreSQL 이 반환할 모든 행 visible 하다는 거 알아야 — visibility map 으로 관리. 무거운 update 후 VACUUM 실행 (또는 autovacuum 신뢰) 으로 visibility map 최신 유지; 안 그러면 planner 가 heap 체크로 fallback.