【发布时间】:2015-08-13 12:20:53
【问题描述】:
我的问题是我的 Hive SQL 查询有时会导致全表扫描并持续很长时间。因此,我想知道 where 语句的顺序是否真的对查询的性能有影响。
例如该查询具有基于日期的主键和用于区分对象的辅助键。我只想分析昨天的数据,应该比全表扫描快很多。
查询 1:
SELECT
primarykey,
COALESCE(SUM(param1),0L),
COALESCE(SUM(param2),0L),
param3
FROM
Table
WHERE
param1 = "abc" AND
param2 > 0 AND
primarykey = yesterdaysdate
GROUP BY
param3;
查询 2:
SELECT
primarykey,
COALESCE(SUM(param1),0L),
COALESCE(SUM(param2),0L),
param3
FROM
Table
WHERE
primarykey = yesterdaysdate AND
param1 = "abc" AND
param2 > 0
GROUP BY
param3;
查询 2 是否可能比查询 1 更快?
在我看来,由于查询优化器的原因,这不应该有任何影响。
【问题讨论】:
标签: performance hadoop hive hiveql