主键方案

时间:2018-01-08 19:29:28

标签: amazon-dynamodb primary-key

我刚刚开始使用DynamoDB,并且不确定如何生成主键。根据我的研究,我看到两个好的方案。

  1. UUID(或GUID)
  2. 时间戳与随机数相结合
  3. 这些好选择吗?这两种选择有哪些优缺点?

2 个答案:

答案 0 :(得分:0)

在DynamoDB中,主键称为分区键。这两个选项都很好,但具体取决于你的情况。以下是有关DynamoDB分区键的两篇好文章:https://aws.amazon.com/pt/blogs/database/choosing-the-right-dynamodb-partition-key/https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html

答案 1 :(得分:0)

上述两种选项均受您的使用案例约束。 dynamoDB表配置吞吐量的最佳使用主要取决于两个因素:

  • 主键选择
  • 各个项目的工作负载模式

主键可以是简单的(分区键)或复合键(主键和排序键)。想象一下,因为按照分区键在数据库中创建了块,并且按照排序键将元素排列在这些块中。

现在根据dynamoDB官方指南,构建主要关键元素以避免一个“热”(大量请求)分区键值,以避免整体性能降低。如果您的应用程序有很多用户,那么USER_ID可以是一个很好的分区键,可以分配负载并优化性能

考虑具有复合主键的表,其中date作为分区键。在该特定日期创建的记录数(例如2018-01-12)将写入同一分区,其中排序键为项目标识符。