当前位置: 首页 > news >正文

优化实战篇—自关联的优化

自关联的优化

根据定义,自关联是表自身的关联。自连接通常仅在给定数据中存在父子关系时使用。在本文中,我们将检查如何在Hive中编写自连接查询,它的性能问题以及如何优化它。开始之前我们可以看一下之前关于关联的文章

Hive实战之自关联经典案例

各种join 的执行计划

从查询结果进行自关联

有个需求就是我们需要从一个查询结果上进行自关联,这里我使用WITH 语法构造了这个查询,更多关于WITH的可以看看我们之前的文章

数仓工具—Hive语法之with as和from

数仓工具—Hive语法之with扩展

WITH sub_query AS(SELECT * FROM employee_manager
)
select EMPL.EID, EMPL.NAME, MANAGER.NAME as MANAGER_NAME
from  sub_query EMPL, sub_query MANAGER
where EMPL.eid = MANAGER.mid;

其实我们可以使用临时表来替代WITH语法,这个时候可能会看到性能有所提示,常见的创建临时表的方式如下

CREATE TEMPORARY TABLE temp1(col1 string);
CREATE TEMPORARY TABLE temp2 AS Select * from table_name; 
CREATE TEMPORARY TABLE temp3 LIKE table_name;

自关联的优化

其实关于自关联的优化手段,和我们之前优化join 的差不多,我们简单看一下

  1. 避免使用自关联在大表上,如果无法避免那么参考之前我们大表的关联优化方案
  2. 创建临时表避免WITH,因为你通过WITH 创建出来的对象在多次使用时会多次执行查询
  3. 在关联之前删除不必要的数据
  4. 创建索引,因为是自关联,所以我们就只需要创建一次索引

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《昇思25天学习打卡营第05天|qingyun201003》
  • debian固定ip
  • c++ :运算符重载函数中的细节
  • jmeter-beanshell学习9-放弃beanshell
  • k8s快速部署一个网站
  • tkinter-TinUI-xml实战(11)多功能TinUIxml编辑器
  • 【python学习】python标准库之正则表达式库re的定义、功能和函数,以及正则表达式的元字符和含义
  • 【深度学习入门篇 ②】Pytorch完成线性回归!
  • Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器
  • Spring AOP 实现 Excel 导出统一处理
  • Linux——公网 IP别名设置,清屏,删除别名,在linux中提供alias永久化的方法,命令历史
  • 【Superset】dashboard 自定义URL
  • ESP32CAM物联网教学11
  • 微服务中的 “服务发现机制” 简介
  • 链接追踪系列-07.logstash安装json_lines插件
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • extract-text-webpack-plugin用法
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • php ci框架整合银盛支付
  • Promise面试题,控制异步流程
  • React的组件模式
  • Windows Containers 大冒险: 容器网络
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从setTimeout-setInterval看JS线程
  • 从零搭建Koa2 Server
  • 第十八天-企业应用架构模式-基本模式
  • 京东美团研发面经
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 用 Swift 编写面向协议的视图
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (9)目标检测_SSD的原理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Java入门)抽象类,接口,内部类
  • (超详细)语音信号处理之特征提取
  • (回溯) LeetCode 40. 组合总和II
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)Google的Objective-C编码规范
  • .NET Core 通过 Ef Core 操作 Mysql
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 表达式计算:Expression Evaluator
  • .net 获取url的方法
  • .net 使用ajax控件后如何调用前端脚本
  • .net(C#)中String.Format如何使用
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .Net下的签名与混淆
  • .NET业务框架的构建
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Value读取properties中文乱码解决方案
  • [ C++ ] STL---string类的模拟实现
  • [100天算法】-二叉树剪枝(day 48)
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [android] 切换界面的通用处理
  • [BZOJ]4817: [Sdoi2017]树点涂色