amazon-dynamodb - 我应该将此字段设为 GSI、常规属性还是其他内容以进行高效查询?

标签 amazon-dynamodb dynamodb-queries amazon-dynamodb-index

对于我的 DynamoDB 表,我目前有一个这样的架构:
分区键 - 唯一 ID,因此每个项目都有一个完全唯一的 ID
排序键 - 无
属性 - 包含一些值的 JSON
现在,我想为每个项目添加一个新字段,该字段将指示特定区域(例如 NA-1、NA-2、JP-1 等)和 我希望能够仅对这个字段进行查询 .例如,我可能想对我的表执行查询以检索区域为 NA-1 的所有项目。
我的问题是我应该让这个领域成为 GSI 吗?我是 DynamoDB 的新手,所以我一直在网上进行研究,似乎首选使用 GSI,因为该字段可能仅适用于表中的选定项目,但每个项目都需要我的字段 ,所以我认为使用 GSI 不是一种选择。
我见过的另一个可能的选择是执行扫描操作并使用过滤器表达式,但从我所见,这是一项代价高昂的操作,因为 DynamoDB 必须逐个查看整个表,然后再进行过滤。我的 table 现在不是很大,但将来可能会变得很大,所以 我想要一个可扩展的选项 .
TL;DR 有什么办法可以向我的表中添加一个强制性的 regionID 字段并对其执行有效的查询吗?我应该考虑哪些好的选择?

最佳答案

是的,GSI 可能不是这里的最佳选择。也许您可以以某种方式使其成为分区键的一部分?

关于amazon-dynamodb - 我应该将此字段设为 GSI、常规属性还是其他内容以进行高效查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63092887/

相关文章:

python - pynamodb last_evaluated_key 始终返回 null

amazon-dynamodb - DynamoDb异常 : Too many decomposed read operations for a given query

amazon-dynamodb - 在什么时候你需要 dynamodb 中的多个表?

android - 如何将图像上传到 AWS S3 并获取图像文件的 S3 存储桶 url 并一次保存到 dynamodb - Android

amazon-web-services - 社交网络的 DynamoDB 表设计

django - Django 中是否有适用于 Amazon DynamoDB 的良好数据库后端?

amazon-web-services - 如何在dynamodb中使用单个键值更新多个项目?

java - spring-data-dynamodb 支持本地二级索引吗?

amazon-web-services - 与 Titan over AWS DynamoDB 的索引不一致

python - pynamodb 亚马逊凭据异常