HQL的一些优化

一、hql的查询
1、hql语句的执行顺序
from 加载,进行表的查找和加载
on 关联字段
join 关联表
where 过滤
group by 分组
having 过滤
select 去重
order by 排序
limit 限制输出数量

2、hql的部分优化
原则一:分区一定要加
原则二:多表连接时使用相同的关联词,这样只会产生一个job
文件a 文件b 文件c
person:age person:age:address address:class:person
原则三:减少每个阶段的数据量,只选出需要的,在join表前进行过滤

select * from a,b where a.uid=b.uid and a.uid > 2000
select * from a join b on a.uid=b.uid where  a.uid > 2000

原则四:map端join
原则五:关联时,大表放在后面,也就是说小表驱动大表

3、HQL的查询
SQL中的查询关键字
select
from
join
on
group by
having
distribute by
cluster by
sort by/order by
limit
union/union all
查询原则
1、尽量不要使用子查询,尽量不使用in或者not in
2、查询尽量避免join连接查询,但是永远不可能避免
3、查询永远是小表驱动大表

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zziv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值