概览
性能模式会禁用哪些功能
启用性能模式
使用配置对象
使用模块级函数
使用便捷导入方式
启用性能模式后,执行引擎会自动设为
chdb。您无需单独调用 config.use_chdb()。何时使用性能模式
- 处理大型数据集 (数十万到数百万行)
- 运行以聚合为主的工作负载 (groupby、sum、mean、count)
- 行顺序并不重要 (例如聚合结果、报表、仪表盘)
- 你希望获得最高的 SQL 吞吐量和尽可能低的额外开销
- 你关心内存占用 (并行读取 Parquet,无中间 DataFrames)
- 你需要完全一致的 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()) 会作为单条 SQL 查询执行,而不是像 pandas 模式那样分两步执行:
与执行引擎的对比
compat_mode) 和执行引擎 (execution_engine) 是相互独立的配置维度:
将
compat_mode='performance' 设为性能模式时,execution_engine 也会自动设为 chdb,因为性能模式是专为 SQL 执行设计的。
在性能模式下测试
排序后比较 (聚合、过滤)
值域检查 (首项/末项)
schema 与计数 (不带 ORDER BY 的 LIMIT)
最佳实践
1. 尽早在脚本中启用
2. 顺序很重要时,请显式排序
3. 适用于批处理/ETL 工作负载
4. 在会话内切换模式
- 执行引擎 — 引擎选择 (auto/chdb/pandas)
- 性能指南 — 通用优化建议
- 与 pandas 的关键区别 — 行为差异