Skip to content

push down

David Liu edited this page Apr 4, 2024 · 7 revisions

谓词下推 predicate push down

将尽可能多的判断更贴近数据源,以使查询时能跳过无关的数据,显著地减少数据传输或计算的开销。

同样的理念发生在软件架构设计上,例如将数据计算和准备工作尽可能交予数据库(如UDF)以及后端完成,进而减少前端或中间件层面定制开发的数据计算工作

SQL场景

  • 在SQL优化上来说,将查询语句中的过滤表达式计算尽可能下推到距离数据源最近的地方,以尽早完成数据的过滤, 再做聚合等操作。
  • 在SQL中,谓词就是返回boolean值即true和false的函数,或是隐式转换为bool的函数。
    • SQL中的谓词主要有 LIKE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS

黄色为下推型架构

一系列SQL ON Hadoop的解析语法树时都在谓词下推方面作出了优化(如Hive SQL和Spark SQL)

Ref

https://docs.pingcap.com/zh/tidb/dev/predicate-push-down

Clone this wiki locally