피드로 돌아가기
Are ClickHouse JOINs Slow? A 2026 PR-by-PR Analysis
Dev.toDev.to
Database

ClickHouse JOIN 엔진 재설계 통한 1,450배 성능 향상 및 OOM 해결

Are ClickHouse JOINs Slow? A 2026 PR-by-PR Analysis

Manveer Chawla2026년 4월 15일20advanced

Context

단일 Hash Join 알고리즘 의존과 Disk Spilling 부재로 인한 메모리 부족 및 OOM Crash 빈번 발생. Query Syntax 기반의 단순 Join 순서 결정 방식으로 인해 최적화되지 않은 실행 계획과 낮은 처리 성능이 지속된 구조적 한계 존재.

Technical Solution

  • Grace Hash Join 도입을 통한 메모리 제약 환경 내 Disk Spilling 구현으로 OOM Crash 원천 제거
  • Parallel Hash Join 기본 적용 및 CPU 코어 수에 따른 선형적 성능 확장 구조 확보
  • Column Statistics 기반 Cost-based Optimizer 및 DPsize 알고리즘을 통한 최적 Join Order 자동 결정
  • Equivalence-set Filter Pushdown 구현으로 Column Equivalence Class 간 Predicate 전파를 통한 스캔 데이터 최소화
  • Runtime Bloom Filters의 Storage Layer 적용으로 Probe-side 데이터의 조기 필터링 수행
  • Correlated Subquery Decorrelation을 통해 복잡한 서브쿼리를 효율적인 Join 구조로 자동 변환

- Sub-10ms p99 응답이 필요한 대시보드 쿼리의 경우 기존의 Flat Table 구조 유지 검토 - 데이터 최신성과 저장 효율이 중요한 분석 워크로드라면 Normalized Star/Snowflake Schema 도입 고려 - ClickHouse v

2

5.9 이후 버전 사용 시 자동 Statistics Collection 및 CBO 활성화 상태 확인

원문 읽기