一、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、查询永远是小表驱动大表