#index
3개의 글.
idx_scan=0 은 인덱스가 필요없다는 뜻이 아니다 — OR 한쪽이 인덱스를 잠근다
OR로 묶인 조건은 한쪽에 인덱스가 없으면 전체가 Seq Scan으로 떨어져, idx_scan=0인 인덱스도 불필요해서가 아니라 잠긴 것일 수 있습니다. 쿼리를 둘로 분리하자 응답이 3,866ms에서 137ms로 줄었습니다.
2026-08-07 · 9 min read
#postgresql#index#pg_trgm#performance
인덱스를 만들었는데 플래너가 안 쓴다 — EXISTS 가 selectivity 추정을 무너뜨릴 때
EXISTS 서브쿼리는 semi join 행 수를 실제보다 극단적으로 적게 추정해 플래너가 인덱스의 조기 종료 이득을 0으로 보고 Sort 를 유지하는데, MATERIALIZED CTE 로 EXISTS 를 격리하면 130ms가 3ms로 줄어듭니다.
2026-07-31 · 11 min read
#postgresql#query-plan#index#performance
PostgreSQL 인덱스 설계 총정리 — 부분·복합·커버링·표현식부터 GIN/BRIN까지
PostgreSQL 인덱스는 부분·복합·커버링(INCLUDE)·표현식 인덱스로 작고 정확하게 좁힐 수 있고, jsonb·배열은 GIN, 시계열 대용량은 BRIN이 적합하며, CONCURRENTLY·EXPLAIN으로 안전하게 운영합니다.
2026-06-11 · 15 min read
#postgresql#database#index#sql#performance