这两个sql之间有什么不同

时间:2017-12-15 05:12:09

标签: sql hive

SQL 1:

select  p.aaa, t.bbb
FROM  fdm.xxx  p
JOIN  gdm.yyy t
ON     p.id = t.id 
where p.dp='CUR';

SQL 2:

select  p.aaa, t.bbb
FROM  ( select * from fdm.xxx  p  where p.dp='CUR' ) p
JOIN  gdm.yyy t
ON     p.id = t.id  ;

表xxx是一个分区表,并按列dp进行分区。 我们的sql标准建议像SQL2一样编写sql,但是当解释这两个sql时,SQL1似乎更加优化。 这两个sql有什么不同? SQL2有更好的性能吗?

1 个答案:

答案 0 :(得分:0)

从功能上讲,它们完全相同。

在几乎所有数据库中,他们都有相同的执行计划。例外是子查询自动实现的数据库 - 例如MySQL。

我相信Hive会同时执行。