0
我有問題,我的配置單元SQL查詢有時會導致全表掃描並且持續很長時間。因此,我想知道where語句的順序是否真的影響了查詢的性能。hive查詢中條件的順序是否影響查詢性能?
E.g.該查詢具有基於日期和輔助鍵區分對象的主鍵。我只想分析昨天的數據,這應該比全表掃描快得多。
查詢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的查詢速度更快?
在我看來,這不應該在查詢優化器的原因有任何影響。
但過濾地圖減少錯誤的順序確實有影響!?然而,使用配置單元我不是在自己構建map reduce語句 – Manuel
@Manuel我認爲所有的過濾條件都將在一次map reduce任務中被同時考慮。它不應該像爲更多數量的過濾標準運行不同或更多數量的MR作業。 – YoungHobbit