Performance 配置单元查询中where条件的顺序是否会影响查询性能?
我有一个问题,我的配置单元SQL查询有时会导致全表扫描,并且会持续很长时间。因此,我想知道where语句的顺序是否真的对查询的性能有影响 例如,查询具有主键build on date和区分对象的辅助键。我只想分析昨天的数据,这应该比全表扫描快得多 问题1:Performance 配置单元查询中where条件的顺序是否会影响查询性能?,performance,hadoop,hive,hiveql,Performance,Hadoop,Hive,Hiveql,我有一个问题,我的配置单元SQL查询有时会导致全表扫描,并且会持续很长时间。因此,我想知道where语句的顺序是否真的对查询的性能有影响 例如,查询具有主键build on date和区分对象的辅助键。我只想分析昨天的数据,这应该比全表扫描快得多 问题1: SELECT primarykey, COALESCE(SUM(param1),0L), COALESCE(SUM(param2),0L), param3 FROM Table WHERE
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快
在我看来,这不会对查询优化器产生任何影响 配置单元查询在内部作为MR作业执行。查询的where子句应被视为筛选条件。因此,它不应该对性能产生任何影响。但是以错误的顺序过滤映射减少确实会产生影响!?但是,使用hive我并不是在构建map reduce语句myself@Manuel我认为所有的过滤条件都将在一个map reduce任务中同时考虑。这不应该像运行不同的或更多数量的MR作业来获得更多数量的筛选条件。