我知道DynamoDB中的表需要在分片之间均匀分配以利用读/写容量,对全局二级索引也是如此吗?
答案 0 :(得分:3)
是的,GSI与常规表索引具有相同的指导原则。您应该遵循Guidelines for Working with Tables中描述的相同指南。 Guidelines for Global Secondary Indexes documentation给出了一个示例,其中选择不当的密钥可能导致分区上的热点和不均匀活动。:
例如,假设您有一个包含属性的Employee表 如姓名,职位,地址,电话号码,薪水和薪酬等级。现在 假设您有一个名为PayLevelIndex的全局二级索引, 使用PayLevel作为哈希键。许多公司只有很小的 付费代码的数量,通常少于10,即使对于拥有 成千上万的员工。这样的指数不会提供 如果有的话,对申请有很多好处。
PayLevelIndex的另一个问题是分布不均匀 不同的价值观。例如,可能只有少数高管 在公司里,但是每小时都有大量的工人。 查询 PayLevelIndex因读取活动而效率不高 不会在分区之间平均分配。