将DynamoDB属性作为一个索引的分区键,并作为另一个索引的排序键



可以将属性作为一个索引的分区键,而作为另一个索引的排序键?

例如,我有一个名为 Events的表,带有属性userstatuscreated_at

我可以创建以下GSIS
gsi user_status [ user as partitionstatus as sort]
GSI status_created_at [status as partitioncreated_at AS sort]

这几乎是GSI的想法。简而言之:答案是肯定的。

不过要谨慎地创建GSIS,其中您在一小部分分区键上具有大量的心脏性,例如第二个GSI示例,您可以分区状态。大概总共只有几个状态值,但是对于每个状态,基数(具有相同状态的项目数(可能非常大。这可能是一个问题的原因是,GSI(如表(可能会受到适用于每个分区的读写能力限制。随着桌子的尺度,具有很高的基数的分配分区较低可能导致性能差。

最新更新