a AND b AND c 有三种执行方式,选错差 12ms:DataFusion 过滤器优化解析
Abhishekcur · x · 2026-10-19
数据库工程里一个反直觉的细节:即使是最简单的 a AND b AND c 过滤条件,在列式批量执行时也有多种实现方式,选哪种对性能影响很大。
- Gather-every-step:每步都重新取数据;
- Evaluate-everything-then-AND:先对所有谓词完整求值再做 AND;
- Running mask(运行掩码):维护一个持续更新的掩码位图。
作者指出在 DataFusion PR #25771 的场景下,running mask 通常最优;而全量求值路径会因为对每一行都执行昂贵谓词而多付出约 12ms。配图由 @AlienMaster10 制作了三种路径的可视化。
「研究」频道最新
- 16MB 冻结词表替代嵌入层:Gemma 270M 级小模型 46MB 文件不掉点 — Sai Kiran Bathula · 2026-10-19
- 美团 LongCat 发布 RAP 数据集:25K 论文-海报对,海报生成变视觉编码任务 — meituan · 2026-10-19
- BELIEFWEAVER:用信念更新与世界建模让长程 Agent 学会从失败中恢复 — IntelligenceLab · 2026-10-19
- UBC 与 Vector Institute 提出免数据扩散蒸馏:一步生成 20GB 显存超越 DMD2 — vector-institute · 2026-10-19
- DeepMind 论文:用户附一句错误猜测,Agent 成功率从 67.4% 跌到 36% — i_dg23 · 2026-10-19
- Thinking Machines 揭 LLM 非确定性根源:并发与浮点致同 batch 输出互异 — AccBalanced · 2026-10-19