amazon-web-services - 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 中包含的所有密钥的最佳做法是什么?任何示例或指南
多谢。
解决方案
存储是每个 GSI。GSI 实际上是一个自动同步的隐藏表。
DynamoDB 中二级索引的一般指南中有关于 GSI 的良好信息。
由于二级索引会消耗存储和预置吞吐量,因此您应该尽可能减小索引的大小。此外,索引越小,与查询全表相比,性能优势就越大。如果您的查询通常只返回一小部分属性,并且这些属性的总大小远小于整个项目,请仅投影您经常请求的属性。
推荐阅读
- android - React Native Camera 在切换类型时重置缩放
- assembly - 32 位引导加载程序是否与 16 位引导扇区兼容?
- django - django 应用程序上 pipenv 的 Docker 错误:警告:--system 旨在用于预先存在的 Pipfile
- go - 所有工作人员完成后关闭通道
- java - Firebase 查询不起作用(onDataEvent 未触发)
- javascript - 了解用于监控 Internet 连接的 offline.js
- php - 卫星互联网连接会减慢本地主机数据库连接,即使它是本地主机?
- swift - 在 Swift 中为 UIImage 着色
- r - 处理条件列中的 NA
- php - 在 Woocommerce 中更改添加到购物车操作时的警报文本而不选择变体