连表数据统计

穿精又带淫゛_ 提交于 2020-03-14 01:39:05

连表操作应该算是程序员的入门基础吧,但自嘲的说,长时间不使用的话,难免还是会有生疏。

hive上连表操作的查询,是通过map-reduce的方式执行的。正常情况下,hive应该会对每个JOIN操作启动一个map-reduce任务。

JOIN的操作也是从左到由执行的。一般来说,习惯将最大的数据表放在最后。因为,在对每行数据记录进行关联操作时,它会尝试将其它表缓存起来,然后扫描最后的表进行计算。

在执行JOIN的关键字on之后,是否可以跟过滤条件?对比下面两个查询

查询一

select * from topic_relation r join note on r.note_id = note.id and note.type = 1

查询二

select * from topic_relation r join note on r.note_id = note.id where note.type = 1

基本上SQL中都是先执行JOIN语句,然后再将结果通过where语句进行过滤。所以,我理解,这两个查询语句的执行效率是一样的。

还有感觉比较值得思考的,善用子查询。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!