Dynamodb UUID hashkeys是否优于顺序生成的hashkey

Al *_*l B 5 amazon-dynamodb

我想我理解没有热hashKeys的概念,以便您在配置吞吐量中使用所有分区.但UUID hashKeys在分区上分配比数字排序更好吗?在这两种情况下都是从密钥生成的哈希码和用于分配给分区的值?如果是这样,两个字符串的哈希码如何:"100444"和"100445"有何不同?他们关闭了吗?

Dav*_*cek 14

"100444"和"100445"不太可能在完全不同的数字中位于同一分区中,例如"12345".将DynamoDB表视为一个大哈希表,其中表的哈希键是哈希表的关键.底层哈希表由密钥的哈希组织,而不是由密钥本身组织.你会发现数字和字符串(UUID)在跨分区的分布方面都在DynamoDB中很好地分发.

UUID在DynamoDB中很有用,因为难以以可扩展的方式为主键生成序列号.随机数对于主键很有效,但是顺序值很难生成而没有间隙,并且可以扩展到您可以在DynamoDB表中配置的吞吐量级别.将新项目插入DynamoDB表时,可以使用条件写入来确保该项目不存在该主键值.

(注意:此问题也在此AWS论坛帖子中交叉发布,并在那里进行了讨论).