【发布时间】:2020-07-13 18:26:50
【问题描述】:
当谈到他们对分区键设计的建议时,我对我在 DynamoDB 帮助中阅读的内容感到有些困惑。
在this first page discussing distributing workload 上,他们解释说将负载分布在不同的分区键上很重要,因为这些分区键用于物理分片。很有道理。
但是在解释全局二级索引时,他们在提供的所有示例中都进行了完全相反的操作:
- 在this highscore example 中,他们在具有单个值的键上创建了一个分区键!这是否意味着所有对高分的请求(根据问题定义“经常查询”)都会命中同一个分片?
- 在GSI overloading example 中,他们建议创建一个使用表的排序键作为其分区键的 GSI,然后执行搜索,例如
Employee_Name- 但Employee_Name是 GSI 中的分区键,所以所有这些请求不会再次命中同一个分片吗?
这些示例不会在 GSI 上创建热分区并因此遭受扩展问题吗?还是我误会了什么?
【问题讨论】:
-
这个例子讲的是稀疏索引,当你的表的每一行都有那个键时,它就不再是稀疏索引了。
标签: performance amazon-dynamodb scalability sharding