跳到内容

优化

如果您使用 Polars 的延迟 API,Polars 将对您的查询运行多项优化。其中一些是预先执行的,另一些则是随着具体化数据传入而即时确定的。

以下是 Polars 进行的优化、它们的作用以及运行频率的非完整概述。

优化 说明 运行次数
谓词下推 尽早/在扫描级别应用过滤器。 1 次
投影下推 仅在扫描级别选择所需的列。 1 次
切片下推 仅从扫描级别加载所需的切片。不要具体化切片输出(例如 join.head(10))。 1 次
公共子计划消除 缓存查询计划中被多个子树使用的子树/文件扫描。 1 次
简化表达式 各种优化,例如常量折叠和用更快的方法替换开销大的操作。 直到不动点
连接排序 估计应首先执行的连接分支,以减少内存压力。 1 次
类型强制转换 强制转换类型,使操作成功并在所需的最小内存上运行。 直到不动点
基数估计 估计基数以确定最佳的分组策略。 0/n 次;取决于查询