首页 > 数据库 >hive sql 优化

hive sql 优化

时间:2023-03-18 11:44:05浏览次数:35  
标签:join 下推 hive col1 过滤 谓词 sql 优化

1、谓词下推

  基本策略是,始终将过滤表达式尽可能移至靠近数据源的位置。例如,将外层查询块的 WHERE 子句中的谓词移入所包含的较低层查询块(例如视图),从而能够提早进行数据过滤以及有可能更好地利用索引。对于大数据领域来说,谓词下推即:不影响结果的情况下,尽量将过滤条件提前执行。

  谓词下推在Hive中默认是开启的,也可以通过配置 SET hive.optimize.ppd=true; 显式开启。

  例如,对于如下SQL 

select a.*, b.* 
from a join b on (a.col1 = b.col1)
where a.col1 > 20 and b.col2 > 40

  如果开启了谓词下推,在join之前会先执行where语句中对两个表的过滤操作,从而减少读取和计算的数据量。否则,会先join再过滤。

标签:join,下推,hive,col1,过滤,谓词,sql,优化
From: https://www.cnblogs.com/solong1989/p/14959590.html

相关文章

  • Hive数据倾斜及小文件处理
    1、数据倾斜原因数据倾斜主要表现在,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长。这是因为某一......
  • MySQL中myisam与innodb的区别
    MyISAM不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作对整个表加锁;存储表的总行数;一个MYISAM表有三个文件:索引文件、表结构文件、数据文件;采用非聚集索引,索......
  • Docker Mysql限制内存
    买了个阿里云的1G单核的服务器,运行了Docker装了数据库占用内存2/3的内存,然后再跑个Java小型程序直接死机,无奈只能减小mysql内存解决后效果:查询了网上资料总结解决方案:......
  • 什么是SQL注入并解决
    'or'1'='1原理:通过违规的字符串改变原来的SQL语句;【将敏感字符进行转义】//包名packagecom.zhulx.JDBC;//导入实例类importcom.zhulx.pojo.Account;......
  • SqlServer练习
    /*创建数据库创建数据库包含两个文件(数据库文件和日志文件)*/usemastergo--创建数据库createdatabaseDragonDawsongo--修改数据库字符集alterdatabase......
  • Redis:我大哥是mysql
    Redis:我大哥是mysql本文说明:简单梳理redis的设计redis某种角度上只是mysql的手下的工具人1.缓存管理redis的出现:作为缓冲区、以免mysql被大量请求冲烂宕机如果同......
  • 路飞:上线架构图、阿里云购买云服务器ECS、云服务器安装mysql、云服务器安装redis(源码
    目录一、上线架构图二、阿里云购买云服务器ECS2.1试用版云服务器ECS获取流程2.2ssh客户端连接远程服务器2.3finalshell连接远程数据库2.4远程服务器的准备工作三、云服务器......
  • MDK 代码优化导致的获取字符串长度问题
    如下代码//平台_硬件版本_MCU型号_编译时间(预留64字节空间,通过工具寻找并改写)staticconstcharMCU_VERSION[64]="LATD_HW00_APP"; //不要修改,工具会自动修改......
  • mysql-information_schema 数据库
    1概述information_schema数据库跟performance_schema一样,都是MySQL自带的信息数据库。其中performance_schema用于性能分析,而information_schema用于存储数据库......
  • mysql count()的底层实现和其优化
    mysqlcount(*)的底层实现和其优化在业务中经常使用count(*)来计算行数,当有人问起其实现方式时,不能很好的解答......