首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不使用时间戳与交错索尔特基?

为什么不使用时间戳与交错索尔特基?
EN

Stack Overflow用户
提问于 2019-02-11 13:02:38
回答 4查看 1.4K关注 0票数 9

我试图在Amazon中找出不同类型的排序键,我遇到了一个奇怪的警告这里,这个警告没有解释:

重要性:不对具有单调递增属性的列使用交错排序键,例如标识列、日期或时间戳。

然而,在他们自己的示例中,亚马逊在一个性能良好的日期列上使用交错密钥。

所以,我的问题是-对这个警告有什么解释,我应该认真对待吗?更准确地说,在时间戳列上使用交错密钥有问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-02-11 13:40:18

我认为,当它们描述有关清除/重新索引的问题时,可能已经解释过了:

在最初加载表时,Amazon分析排序键列中值的分布,并使用这些信息对排序键列进行最佳交织。随着表的增长,排序键列中的值的分布可能会改变或扭曲,特别是日期或时间戳列。如果倾斜变得太大,性能可能会受到影响。

因此,如果这是唯一的原因,那么这只是意味着您将增加对索引的维护。

票数 5
EN

Stack Overflow用户

发布于 2019-02-13 09:40:35

来自data.html

当您将行添加到已包含数据的排序表时,未排序区域将增长,这对性能有重大影响。当表使用交错排序时,效果更大,特别是当排序列包含单调增加的数据时,例如日期或时间戳列

最初引号中的关键点不是数据是日期或时间戳,而是“单调地”增加,在这种情况下,这可能意味着按顺序增加,例如事件时间戳或Id号。

票数 5
EN

Stack Overflow用户

发布于 2019-02-13 05:41:29

日期(而不是时间戳)列作为交错的排序键是有意义的,因为您知道每天平均处理X行数,并且您将根据它进行筛选,如果您不打算使用它,那么就忽略它。还有一个关于真空的注意事项--当真空过程正在进行时,它需要临时空间来完成任务,方法是对数据进行排序,然后合并成块的数据。取消真空过程中的飞行将导致额外的空间无法回收,因此,如果由于某种原因,任何真空已经取消在您的集群,这可以归因于空间的增加。参见链接备注和第3点,最后一点是特别感兴趣的。在我的例子中,与插入的行数量相比,表的增长速度非常快,必须使用深度复制构建一个自动表创建。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54631257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档