1.执行顺序

在 hive 和 mysql 中都可以通过 explain+sql 语句,来查看执行顺序。对于一条标准 sql 语句,它的书写顺序是这样的:

select … from … where … group by … having … order by … limit …

(1)mysql 语句执行顺序:

from... where...group by... having.... select ... order by... limit …

(2)hive 语句执行顺序:

from … where … select … group by … having … order by … limit …

2.Hive执行顺序

hive 基于 MapReduce 程序,它的执行顺序决定了 hive 语句的执行顺序,Map 阶段:

  • 执行 from 加载,进行表的查找与加载
  • 执行 where 过滤,进行条件过滤与筛选
  • 执行 select 查询:进行输出项的筛选
  • 执行 group by 分组:描述了分组后需要计算的函数

map 端文件合并:map 端本地溢出写文件的合并操作,每个 map 最终形成一个临时文件。
然后按列映射到对应的 reduceReduce 阶段:

  • group by:对map端发送过来的数据进行分组并进行计算。
  • select:最后过滤列用于输出结果
  • limit:排序后进行结果输出到HDFS文件

优化重点

根据执行顺序,我们平时编写时需要记住以下几点:

  • 使用分区剪裁、列剪裁,分区一定要加
  • 少用 COUNT DISTINCT,group by 代替 distinct
  • 是否存在多对多的关联
  • 连接表时使用相同的关键词,这样只会产生一个 job
  • 减少每个阶段的数据量,只选出需要的,在 join 表前就进行过滤
  • 大表放后面
  • 谓词下推:where 谓词逻辑都尽可能提前执行,减少下游处理的数据量
  • sort by 代替 order by

Hive SQL执行顺序相关推荐

  1. Hive 优化--SQL执行顺序、Hive参数、数据倾斜 、小文件优化

    优化整体思路 如果资源充足就加资源加内存, 调度链路优化,调整调度顺序,时效性要求高的模型先产出, 数据接入模块,调优数据接入工具sqoop,datax 模型设计质量不高,调整模型,提高质量和复用度, ...

  2. MySQL高级 - SQL技巧 - SQL执行顺序及正则表达式

    SQL执行顺序 编写顺序 SELECT DISTINCT<select list> FROM<left_table> <join_type> JOIN<rig ...

  3. hive 语句执行顺序

    hive语句执行顺序 msyql语句执行顺序 代码写的顺序: select - from- where-. group by- having- order by.. 或者 from - select ...

  4. SQL 执行顺序图解

    目录 执行顺序 数据的关联过程 执行顺序 这是一条标准的查询语句: 这是我们实际上SQL执行顺序: 我们先执行from,join来确定表之间的连接关系,得到初步的数据 where对数据进行普通的初步的 ...

  5. sql笔记1:sql执行优先级和casewhen用法、sql执行顺序

    MySQL 语句中执行优先级--and比or高 例: select * from table where 条件1 AND 条件2 OR 条件3 等价于 select * from table wher ...

  6. Spark SQL执行流程解析之 sql执行顺序

    一.Spark SQL模板解析 Spark Sql 关键字执行顺序跟Sql执行顺序类似: 1.先将from前两表做笛卡尔积加载进来形成虚拟表vt1, 2.on条件后为真的插入虚拟表形成vt2, 如果包 ...

  7. java程序基础——SQL执行顺序

    SQL执行顺序 1.from 2.join 3.on 4.where 5. group by(开始使用select中的别名,后面的语句中都可 以使用) 6.avg,sum.... 7.having 8 ...

  8. 数据库笔记-sql执行顺序以及检索优先级

    sql 执行顺序优先级由高到低依次是: from 关键字后面的语句. where 关键字后面的语句." group by "后面的语句. select 后面的语句." o ...

  9. MySQL 学习笔记(17)— SQL 执行顺序

    以查询语句为例,我们看下面的查询语句: (6)SELECT [DISTINCT | ALL] col1, col2, agg_func(col3) AS alias (1) FROM t1 JOIN ...

最新文章

  1. 计算机图形学曲线生成原理,计算机图形学_曲线及生成.ppt
  2. 奇异值的物理意义是什么?强大的矩阵奇异值分解(SVD)及其应用
  3. 【ORACLE】oracl基本操作笔记
  4. 【机器学习基础】SVM算法在项目实践中的应用!
  5. MySQL MHA配置常见问题
  6. 如何有效的在 LINQ 查询中处理异常?
  7. mysql数学函数名_MYSQL 常见数学函数说明
  8. 如何在Win11重置系统中保留个人文件 Win11重置系统保留个人文件方法
  9. 【图像处理】射线爆发算法(Rayburst algorithm)
  10. 第五章——微型计算机与外设的数据传输
  11. 湖北网络安全的产业机遇在哪里
  12. SAP License:部分清帐和剩余清帐的区别(实例)
  13. ashx获取input file 文件_通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...
  14. Java语法总结 - 线程
  15. Java语言设计文本查找器和文本编辑器
  16. 网页播放背景音乐实现完整代码
  17. SMPL 人体模型简要
  18. Ubuntu使用代理服务器上网
  19. Tensorflow serving 学习(一)
  20. 高德地图定位、画线 基础功能

热门文章

  1. SAP中客户退货流程测试
  2. 1A1C、2A2C多口快充电源设计,支持PD3.1
  3. Python数据分析——基金定投收益率分析,以及支付宝“慧定投”智能定投实现
  4. 用英语编辑计算机学习对话60字,自我介绍用英语写作文60字
  5. Black Rock Shooter
  6. 安卓调用PrinterShare实现无线打印功能
  7. 计算机硬件软件基础,计算机硬件与软件基础知识完整ppt课件
  8. KubeSphere 团队(青云QingCloud) 全职开源职位等你加入!
  9. 单片机c语言曲普两只蝴蝶,C51单片机 蜂鸣器两只蝴蝶代码
  10. 【企业】把握蘑菇管理原理,合理培养人才