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