在vs'>和

问题描述 投票:1回答:2
之间使用是否有区别

我使用从按日期划分的大型配置单元表中选择数据(格式:yyyyMMdd),需要配置单元查询从6个月的数据中获取几个字段(总共180个日期分区。目前,查询看起来像:

SELECT field_1, field_2 
FROM table 
WHERE `date` BETWEEN '20181125' and '20190525'

想知道是否将查询更改为使用>= & <=在性能方面是否有任何区别。

SELECT field_1, field_2 
FROM table 
WHERE `date`>='20181125' AND `date`<='20190525'
performance hive hiveql
2个回答
0
投票

我无法想到在使用<>而不是Between关键字时性能的任何重大变化。

但是如何使用IN关键字并列出范围之间的所有日期将比其他两种情况略有优势。

SELECT field_1, field_2 FROM table WHERE dates in ('20181125','20181126',...,'20190524','20190525');

0
投票

[>=, <=BETWEEN应该生成相同的执行计划,尽管在您的Hive版本中可能有所不同。

使用EXPLAIN,它显示查询执行计划。只有计划才能肯定地帮助回答这个问题。选中EXPLAIN DEPENDENCY,它会打印要扫描的input_partitions,然后您会看到分区修剪在每种情况下是否有效。

如果>=, <=BETWEENIN的计划相同,则其工作原理相同,并且性能应相同。

© www.soinside.com 2019 - 2024. All rights reserved.