关于Redshift列VARCHAR(MAX)的问题

0

【以下的问题经过翻译处理】 一位客户建Redshift表时希望包含一列很宽的varchar(65535)列(尽管只有一小部分数据会这么大),但我们的最佳实践建议列大小尽量用最小可能的(否则可能会造成内存浪费)。

他们咨询以下问题:

  1. 这是否意味着只有当我们在列中存储了大量的长字符串时,使用具有大的VARCHAR(MAX) 才会影响性能?
  2. 如果说90%的数据只有20个字节,这样是否会有任何问题?

我找到一篇支持文章中提到在查询处理过程中,后面空白的字节会占用整个长度的内存,但仍然不确定怎样回答上述问题。

profile picture
专家
已提问 5 个月前16 查看次数
1 回答
0

【以下的回答经过翻译处理】 宽列的影响主要出现在数据查询时。即如果用户在表中查询其他列,那宽列不会影响查询性能。如果该列经常被查询,最好的做法是将相关部分信息分析出来并加载到专用的、合适大小的列中,来满足出报表的需求。您可以将原始数据保留在当前列中,但建议用户不要经常访问这些列。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则