是否可以将属性作为一个索引的分区键和另一个索引的排序键?
例如,我有一个名为Events
的表,其中包含属性user
,status
,created_at
。
我可以同时创建以下GSI吗?
GSI user_status
[user
为partition
,status
为sort
]
GSI status_created_at
[status
为partition
,created_at
为sort
]
答案 0 :(得分:0)
这就是GSI的想法。简而言之:答案是肯定的。
但是,要小心创建GSI,其中您在一小组分区键上具有大量基数,例如您在状态上进行分区的第二个GSI示例。据推测,总共只有少数状态值,但对于每种状态,基数(具有相同状态的项目数)可能非常大。这可能是一个问题的原因是GSI,如表,受每个分区应用的读写容量限制。随着您的表格扩展,具有非常高基数的分区中的低分布可能导致性能不佳。