개요
Performance Mode에서 비활성화되는 기능
성능 모드 활성화
config 객체 사용
모듈 레벨 함수 사용하기
편의 import 사용
성능 모드를 사용하면 실행 엔진이 자동으로
chdb로 설정되므로 config.use_chdb()를 별도로 호출할 필요가 없습니다.Performance Mode를 사용해야 하는 경우
- 대규모 데이터셋(수십만~수백만 행)을 처리하는 경우
- 집계 중심 워크로드(
groupby,sum,mean,count)를 실행하는 경우 - 행 순서가 중요하지 않은 경우(예: 집계된 결과, 보고서, 대시보드)
- SQL 처리량을 최대화하고 오버헤드는 최소화하려는 경우
- 메모리 사용량이 우려되는 경우(Parquet 병렬 읽기, 중간
DataFrame없음)
- pandas의 동작을 정확히 재현해야 하는 경우(행 순서, MultiIndex, dtypes)
first()/last()가 실제 첫 번째/마지막 행을 반환해야 하는 경우- 행 순서에 의존하는
shift(),diff(),cumsum()을 사용하는 경우 - DataStore 출력과 pandas를 비교하는 테스트를 작성하는 경우
동작상의 차이점
행 순서
- 필터 결과
- GroupBy 집계 결과
- 명시적으로
sort_values()를 지정하지 않은head()/tail() first()/last()집계
sort_values()를 명시적으로 추가하세요:
GroupBy 결과
집계
단일 SQL 실행
ColumnExpr groupby 집계(예: ds[condition].groupby('col')['val'].sum())가 pandas 모드에서 사용하는 2단계 방식이 아니라 하나의 SQL 쿼리로 실행됩니다:
실행 엔진과의 비교
compat_mode)와 실행 엔진(execution_engine)은 서로 독립적인 구성 요소입니다.
compat_mode='performance'로 설정하면 execution_engine='chdb'도 자동으로 설정됩니다. 성능 모드는 SQL 실행에 맞춰 설계되었기 때문입니다.
Performance Mode에서 테스트하기
정렬한 뒤 비교(집계, 필터)
값 범위 검사 (첫 값/마지막 값)
스키마와 개수 (ORDER BY 없는 LIMIT)
권장 사항
1. 스크립트 초반에 활성화하기
2. 순서가 중요하다면 정렬을 명시적으로 지정합니다
3. 배치/ETL 워크로드에 활용
4. 세션 내에서 모드 전환하기
- 실행 엔진 — 엔진 선택(auto/chdb/pandas)
- 성능 가이드 — 전반적인 최적화 팁
- pandas와의 주요 차이점 — 동작 방식 차이