我有一个5磨坊记录表,约25列,其中大部分是字符串类型。当我进行查询时,获取结果大约需要47秒。每个字符串列有2GB的空间(因为我不知道如何减少这个值),一个列的最大长度记录大约是32k个字符,而其他列的长度则远远小于这个值(7,18,50)。
为了获得更好的查询性能,我复制了该表,但是在所有字符串列中,我对上面提到的长记录使用了varchar(1000)和varchar(50000),而不是string。我原以为这能让我更快地拿到货,但几乎要花双倍的时间。
据我所知,我使用varchar使用的空间要少得多,但不知怎么的,这并没有发生。在相同的条件下,我应该使用varchar而不是string来获得更好的响应吗?
1条答案
按热度按时间9fkzdhlc1#
两者之间不应有任何性能差异
string
以及varchar
但最好的选择是字符串,varchar
也作为字符串存储在内部。以下是两种方法的一些非常好的细节对比:
https://community.hortonworks.com/questions/48260/hive-string-vs-varchar-performance.html
如果存储格式是Parquet文件格式,有什么优势吗