跳转到主要内容
explain() 方法可显示 DataStore 查询的执行计划,帮助你了解将执行哪些操作,以及会生成哪些 SQL。

基本用法

语法

参数:
参数Type默认值描述
verboseboolFalse显示更多元数据

输出格式

标准输出

图标图例

图标含义
📊数据源
🚀chDB (SQL) 操作
🐼pandas 操作

详细输出

详细模式会显示每个操作的更多细节,包括包含内部行顺序跟踪机制的完整 SQL 查询。

三个执行阶段

EXPLAIN 输出展示了三个阶段中的操作:

第 1 阶段:SQL 查询构建 (惰性求值)

会被编译为 SQL 的操作:

阶段 2:执行时机

当触发条件满足时:

阶段 3:DataFrame 操作

执行后的操作:

理解执行计划

源信息

  • file() - ClickHouse file() 表函数
  • 'CSVWithNames' - 包含列名行的文件格式
其他源类型:

过滤操作

显示将应用的 WHERE 子句。

GroupBy 与聚合

显示 GROUP BY 使用的列和聚合函数。

排序操作

显示 ORDER BY 子句。

操作限制

显示 LIMIT 和 OFFSET。

引擎信息

启用详细模式后,您可以看到将使用哪个引擎:

下推

  • :操作将在数据源端 (SQL) 执行
  • :操作需要由 pandas 执行

示例

简单查询

复杂聚合

混合使用 SQL 和 pandas

当操作无法完全下推到 SQL 时,执行计划会显示多个分段:

使用 explain() 调试

检查过滤逻辑

检查列选择

理解聚合


最佳实践

1. 执行大型查询前先检查

2. 使用 Verbose 模式进行调试

3. 与 to_sql() 对比

4. 检查下推状态

最后修改于 2026年6月10日