我有一个两难的境地,我知道我应该从一开始就使用SQL DB。
我不确定是否可以为我的特定用例使用排序键。我有一个包含多个属性品牌、模型参考、参考的表格......我想做的是让用户选择品牌,然后选择模型,然后选择参考等,然后获得符合该标准的所有产品,并给出这些商品价格的平均值。
现在对具有 300K+ 项目的整个数据库进行扫描操作至少可以说不是很经济,但这就是我所处的情况。
我的问题是,我怎样才能最经济高效地做我想做的事情?
让表 T 只有一个分区键:ID
。
为了简单起见,您让客户端选择n = 3
属性:brand
、model-ref
、reference
。
现在,定义一个全局二级索引 (GSI(,其中包含分区键:brand_model-ref_reference
和排序键:ID
。我建议你使用投影:全部。
因此,当客户端选择了其 3 个值:a
、b
、c
时,您所要做的就是使用brand_model-ref_reference = "a#b#c"
查询 GSI。您将有效地获取计算平均值所需的所有且仅项。表的大小不再重要。
注释:
- 使用此解决方案,您必须提前确定条件的数量,并且客户端必须为所有条件选择一个值。不太好。
- 如果有更多的约束,那么所有的解决方案都将变得毫无用处。使用它作为提示。:)