字符串vs Varchar Hive查询性能

时间:2019-02-20 23:33:26

标签: string performance hive hiveql varchar

我有这张表,其中有5条铣削记录,大约25列,其中大多数是String类型的。当我进行查询时,它将持续约47秒以获取结果。 我为每个String列留出2 GB的空间(因为我不知道如何减少该值),一列的最大长度记录约为32,000个字符,而其他列的记录少得多比那(7,18,50)。

为了获得更好的查询性能, 我复制了该表,但是我使用了Varchar(1000)和varchar(50000) 来代替String来记录该长记录以上,在所有STring列中。我以为这样可以使我更快地获取数据,但是几乎要花两倍的时间。

据我了解,即时通讯使用的方式使用varchar的空间更少,但是以某种方式却没有发生。 在相同条件下,我应该使用varchar而不是字符串来获得更好的响应吗?

1 个答案:

答案 0 :(得分:0)

stringvarchar之间应该没有任何性能差异,但是最好的选项用作字符串,varchar也作为字符串存储在内部。

这是在两者的细节比较方面非常出色的线索:

https://community.hortonworks.com/questions/48260/hive-string-vs-varchar-performance.html

Hive - Varchar vs String , Is there any advantage if the storage format is Parquet file format