首页 > 解决方案 > DynamoDB GSI 数据复制

问题描述

我有一个关于在 dynamoDB 中使用 GSI 的问题,我在使用 2 个 GSI 的表中获得了 10 个属性,我想为具有不同访问模式的两个 GSI 检索相同的数据

例如 :

主表

userId、productId、productName、price、GSI1、GS2、更多属性。

GSI:projected attributes all get product by product name PK:productName,sk:price

GSI:projected attributes all get product by price and name PK:价格,sk:产品名称

两个 GSI 都投射相同的 10 个表属性,但我的问题是两个 GSI 在存储方面是相互独立的,因为我可能知道每个 GSI 都有自己的 WUC、RUC 但存储相同,因为它们投射相同的值?

仅使用 GSI 中包含的所有密钥的最佳做法是什么?任何示例或指南

多谢。

标签: amazon-web-serviceslambdaamazon-dynamodbdynamodb-queries

解决方案


存储是每个 GSI。GSI 实际上是一个自动同步的隐藏表。

DynamoDB 中二级索引的一般指南中有关于 GSI 的良好信息。

由于二级索引会消耗存储和预置吞吐量,因此您应该尽可能减小索引的大小。此外,索引越小,与查询全表相比,性能优势就越大。如果您的查询通常只返回一小部分属性,并且这些属性的总大小远小于整个项目,请仅投影您经常请求的属性。


推荐阅读