唯一分区键对 DynamoDB 性能的影响

Impact of unique partition key on DynamoDB performance

我有以下 table 结构。我的 partitionKey 目前不是唯一的,但我的 sortKey 是唯一的。

我还有一个 Global Secondary Index,其中我的列 Column Units 是唯一的 partitionKey。

Will removing the GSI and making the partitionKey to Column Units which is unique make my queries faster and reduce latency.

原因,我想问的是偶尔我会看到 DDB 对此 table 的调用激增。

Current Table Structure
GSI - Column Units
Column Zone (partitionKey) Column Units (sortKey)
A unique-1
A unique-2
B unique-3

删除或添加全局二级索引对基础 table 的性能没有影响。全局二级索引是一个 单独的 table,来自基础 table 的数据异步复制到它。

如果您使用 GetItem API 来请求项目,那么您是否有主键(只有分区键)或复合主键(分区键和排序键)应该无关紧要.

在你的情况下,复制分区键是可以的,因为你也在使用排序键,如果你只使用具有重复值的分区键,你将在 dynamoDB 分区数据时遇到问题。

DynamoDB 根据主键值存储和检索每个项目,该值必须是唯一的。项目分布在 10 GB 的存储单元中。

对于具有复合主键的表,排序键可以用作分区边界。如果集合大小超过 10 GB,DynamoDB 将按排序键拆分分区。