写点什么

sql 优化谓词下推在 join 场景中的应用

  • 2025-08-01
    北京
  • 本文字数:507 字

    阅读完需:约 2 分钟

本文分享自天翼云开发者社区《sql优化谓词下推在join场景中的应用》,作者:i****n

列裁剪(分区裁剪):将为查询的字段以及分区过滤,从而减少加载的数据量。

Map 端聚合配置:在 map 端惊醒聚合,减少 shuffle 过程;

谓词下推:限制条件进行提前过滤,减少下游处理的数据量;

空值过滤:提前惊醒空值过滤,避免空值引起倾斜;

目前,hive 中谓词下推、map 端聚合参数是默认开启的。本文中简单的介绍 sql 优化方式中的谓词下推的方式及适用的场景。

谓词下推的原理是将 sql 中的限制条件的逻辑尽可能的提前在 sql 中执行,从而减少加载的数据量,提升下游数据处理的效率以及减少内存消耗。该种方式在 hive,MySQL,Doris 的语法中均适用 。在 hive 中,对应的逻辑优化器是 PredicatePushDown,打开谓词下推可以通过命令 hive (default)> set hive.optimize.ppd = true;在 hive 中,默认是 true。Doris 中,从 CBO 优化器 tree ReWrite 中也可以实现该优化。

sql 中常用的谓词及即 sql 查询条件中返回值为 true 的函数或是隐式转换为 boolean 的函数。如”where”、”on”、”limit”、”and”、”like”、”is null”等常用函数。其出现在多表关联的场景中,关联又 left join,right join ,inner join 以及 full join。

下推场景总结



用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
sql优化谓词下推在join场景中的应用_数据库_天翼云开发者社区_InfoQ写作社区