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

本文分享自天翼云开发者社区《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。

下推场景总结

相关推荐
雷工笔记1 小时前
SQL系列2:PostgreSQL 日期时间字段类型选择指南
数据库·sql·postgresql
逍遥德1 小时前
PostgreSQL --- JSON 函数详解
数据库·sql·postgresql·json
Irene19912 小时前
Oracle(字符集分为服务端和客户端) 和 Hive(依赖 MySQL(或 PostgreSQL)存储元数据)字符集编码格式查询,中文乱码处理
hive·sql·oracle
韶博雅3 小时前
oracle优化用到的sql
sql·oracle·ffmpeg
鸽芷咕3 小时前
金仓数据库标量子查询消除:一条SQL从32秒优化到24毫秒
数据库·sql
兔子宇航员03013 小时前
HiveSQL 中 NULL 与空字符串的区别与注意事项
数据库·数据仓库·sql
保定公民3 小时前
Oracle 层次查询(CONNECT BY)完全指南:从入门到精通
数据库·sql·oracle·达梦数据库·层次查询
逍遥德3 小时前
PostgreSQL --- 数组函数详解
数据库·sql·postgresql
lzhdim15 小时前
SQL 入门 16:SQL 事务隔离级别与死锁解析(易懂)
数据库·sql
tedcloud12317 小时前
DBX部署教程:打造支持AI SQL助手的数据库管理环境
数据库·人工智能·sql