【发布时间】:2019-12-09 07:35:51
【问题描述】:
在 spark-sql 中,我有一个查询,它在联接中使用多个表(大表和小表)。我的问题是-does the order of these tables matter with respect to query performance ?
例如
select larger.col1, smaller.col2
from larger
Left Join smaller
on larger.key = smaller.key
Left Join larger2
on larger2.key2 = smaller.key2
我在网上搜索过,但没有得到确凿的答案。那么,如果我改变左右表的顺序,性能会有所不同吗?
【问题讨论】:
-
可以的。但更重要的是,左连接和右连接不是可交换的 - 因此顺序实际上会影响数据。
-
如果您更改连接的顺序,结果集将会改变。性能是次要考虑因素。
-
内连接怎么样?如果我在内部连接中交换较大和较小的顺序,性能会有所不同吗?
-
hive 文档旨在解决所有这些问题cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins
标签: sql hive apache-spark-sql hiveql