我刚刚开始使用DynamoDB,并且不确定如何生成主键。根据我的研究,我看到两个好的方案。
这些好选择吗?这两种选择有哪些优缺点?
答案 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)将写入同一分区,其中排序键为项目标识符。