字符串与varchar配置单元查询性能

jogvjijk  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(326)

我有一个5磨坊记录表,约25列,其中大部分是字符串类型。当我进行查询时,获取结果大约需要47秒。每个字符串列有2GB的空间(因为我不知道如何减少这个值),一个列的最大长度记录大约是32k个字符,而其他列的长度则远远小于这个值(7,18,50)。
为了获得更好的查询性能,我复制了该表,但是在所有字符串列中,我对上面提到的长记录使用了varchar(1000)和varchar(50000),而不是string。我原以为这能让我更快地拿到货,但几乎要花双倍的时间。
据我所知,我使用varchar使用的空间要少得多,但不知怎么的,这并没有发生。在相同的条件下,我应该使用varchar而不是string来获得更好的响应吗?

9fkzdhlc

9fkzdhlc1#

两者之间不应有任何性能差异 string 以及 varchar 但最好的选择是字符串, varchar 也作为字符串存储在内部。
以下是两种方法的一些非常好的细节对比:
https://community.hortonworks.com/questions/48260/hive-string-vs-varchar-performance.html
如果存储格式是Parquet文件格式,有什么优势吗

相关问题