答案 0 :(得分:1)
1)在https://stackoverflow.com/a/51240423/4985580处查看我的答案,以了解如何对表进行分区。 GSI本质上只是一个新表,它的分区方式与基表相同。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html
DynamoDB中的全局二级索引也由分区组成。 GSI中的数据与基础数据分开存储 表,但索引分区的行为与表几乎相同 分区。
2)是,10GB
3)这是一个有趣的问题,我没有答案。 Dynamo根据数据的分区键访问正确的分区,因此,如果用单个分区键填充多个分区,则可能会出现问题。也就是说,您可能至少需要250万个具有相同分区键的项目才能实现(10GB / 4KB)。这可能适合您吗?
答案 1 :(得分:0)
如果是,那么单基GSI(即所有记录中具有相同分区键的GSI)超过存储限制时会发生什么?
DynamoDB分区每秒只能处理1000个WCU。此外,DDB每条记录只允许使用400 WCU。 如果您的GSI超过WCU,则对主表的写入也会受到限制。因此,如果您的记录约为400KB,则2.5左右的请求速率会使您的分区下降。
答案 2 :(得分:0)
这是一篇很好的博客文章,解释了分区的工作原理:https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/
<块引用>具有相同分区键的所有项目存储在一起,对于复合分区键,按排序键值排序。如果集合大小超过 10 GB,DynamoDB 会按排序键拆分分区。