【问题标题】:Make a dynamodb attribute as partition key of one index and as sort key of another index将 dynamodb 属性作为一个索引的分区键和另一个索引的排序键
【发布时间】:2018-04-24 21:58:38
【问题描述】:

是否可以将属性作为一个索引的分区键和另一个索引的排序键?

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

我可以创建以下两个 GSI
GSI user_status [user as partition, status as sort]
GSI status_created_at [status as partition, created_at as sort]

【问题讨论】:

  • 如果你尝试会发生什么?

标签: amazon-web-services indexing amazon-dynamodb


【解决方案1】:

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

但是,在创建 GSI 时要谨慎,因为您在一小部分分区键上具有大量基数,例如第二个 GSI 示例,其中您根据状态进行分区。大概总共只有少数状态值,但对于每个状态,基数(具有相同状态的项目数)可能非常大。这可能是一个问题的原因是 GSI 和表一样,受到适用于每个分区的读写容量限制。随着您的表扩展,具有非常高基数的分区之间的分布较低可能会导致性能下降。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多