查询按日期字符串分区的配置单元表时,在vs'>&< '之间使用是否有区别?

bkhjykvo  于 2021-06-24  发布在  Hive
关注(0)|答案(2)|浏览(287)

我可以从按日期分区的大型配置单元表中选择数据(格式: 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'
wbrvyc0a

wbrvyc0a1#

在使用<>而不是between关键字时,我想不出性能有什么显著变化。
然而,使用in关键字并列出范围之间的所有日期将比其他两种情况稍有优势。

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

332nm8kg2#

>=, <= 以及 BETWEEN 应该生成相同的执行计划,尽管在配置单元版本中可能不同。
使用explain,它显示查询执行计划。只有计划才能有助于肯定地回答这个问题。检查 EXPLAIN DEPENDENCY ,它打印出来了 input_partitions 然后您将看到分区修剪在每种情况下是否有效。
如果计划相同 >=, <= , BETWEEN 以及 IN 那么它的工作原理和性能应该是一样的。

相关问题