Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 配置单元查询中where条件的顺序是否会影响查询性能?_Performance_Hadoop_Hive_Hiveql - Fatal编程技术网

Performance 配置单元查询中where条件的顺序是否会影响查询性能?

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

我有一个问题,我的配置单元SQL查询有时会导致全表扫描,并且会持续很长时间。因此,我想知道where语句的顺序是否真的对查询的性能有影响

例如,查询具有主键build on date和区分对象的辅助键。我只想分析昨天的数据,这应该比全表扫描快得多

问题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快


在我看来,这不会对查询优化器产生任何影响

配置单元查询在内部作为MR作业执行。查询的where子句应被视为筛选条件。因此,它不应该对性能产生任何影响。

但是以错误的顺序过滤映射减少确实会产生影响!?但是,使用hive我并不是在构建map reduce语句myself@Manuel我认为所有的过滤条件都将在一个map reduce任务中同时考虑。这不应该像运行不同的或更多数量的MR作业来获得更多数量的筛选条件。