병렬 집계는 왜 절반만 병렬인가: 공유 해시 테이블 실험이 남긴 청구서

PostgreSQL의 병렬 집계는 워커가 부분 집계를 하고 리더 하나가 합치는 구조입니다. 그룹이 많으면 그 합치는 단계가 병목이 됩니다. pgEdge의 Andrei Lepikhov가 DSM 공유 해시 테이블로 이 단계를 없애 보고 균등 분포에서 4.8배를 얻었지만, skew에서 0.04배까지 무너졌습니다. 500만 그룹 쿼리로 병목을 직접 재 보고, 프로세스 모델이 어디서 값을 청구하는지 정리합니다.

2026년 8월 25일

planner는 통계를 보고 계획을 세운다: pg_statistic과 pg_stats 읽는 법

PostgreSQL planner는 쿼리를 실행해 보지 않고 통계 요약만 보고 실행계획을 정합니다. ANALYZE가 샘플을 떠서 pg_statistic에 채우는 과정, pg_stats의 n_distinct, most_common_vals, histogram_bounds, correlation을 읽는 법, planner가 그 숫자로 row를 추정하는 공식을 공식 문서 기준으로 정리했습니다.

2026년 6월 26일