string - String vs Varchar Hive 查询性能
问题描述
我有这张表,有 5 条轧机记录,大约 25 列,其中大部分是字符串类型。当我进行查询时,获取结果大约需要 47 秒。每个 String 列都有 2 GB 的空间(因为我不知道如何减少该值),一列的最大长度记录大约是 32k 个字符,其他的则要少得多(7,18, 50)。
为了获得更好的查询性能,我复制了该表,但在所有 STring 列中,我对上述长记录使用了 Varchar(1000) 和 varchar(50000) 而不是 String 。我认为这会让我更快地获取,但这几乎需要两倍的时间。
据我了解,我使用 varchar 使用的空间更少,但不知何故这并没有发生。在相同的条件下,我是否应该使用 varchar 而不是 string 获得更好的响应?
解决方案
和之间不应该有任何性能差异string
,varchar
但最佳选项用作字符串,varchar
内部也存储为字符串。
这里有一些关于两者细节比较的优秀线程:
https://community.hortonworks.com/questions/48260/hive-string-vs-varchar-performance.html
推荐阅读
- java - Collection的java泛型
返回列表 或设置 - hbase - 如何在 Nifi 中使用 HBase 2.0.4 版本?
- mongodb - 如何知道聚合组具有上一个/下一个值?
- ios - 通过 wifi 向 Apple Watch 发送远程通知
- vaadin - Vaadin 13beta1 中的 CustomField 顶部似乎有很大的额外空间
- missing-data - 如果缺失具有明确的含义,如何处理缺失值?
- mysql - 将 sql 查询转换为子查询
- angular - 由于 http 拦截器 Angular 6 中的错误,无法构建 Angular 应用程序
- google-cloud-platform - 为什么在 Metric Explorer 中使用基于日志的指标时,我可以选择严重性作为过滤器,而不是 textPayload
- pdf - 如何在现有 pdf 中使用 iText 4 使不可见文本可见