amazon-web-services - 在 dynamodb 上查询不同过滤器的正确方法是什么?
问题描述
我将order
数据保存在 dyanmodb 表上。而分区键是orderId
,排序键是timestamp
。每个订单都有许多其他属性,例如category,
userName ,
price ,
items ,
status`。我将构建一个过滤服务,让客户根据这些属性查询订单。另外我想为分页查询添加一个限制。但我发现 dynamodb 有一些限制。
为了支持查询不同的字段,我有两种选择:
为每个属性创建 GSI。它非常昂贵,但它支持查询每个属性非常性能。此解决方案不支持在过滤器中组合多个属性。
SCAN
在要包含属性条件上附加过滤器表达式。SCAN
本来就不是很表现。过滤器表达式也在limits
. 这意味着它很可能响应少于用户请求限制。
那么在 dynamodb 中实现这一目标的好方法是什么?
解决方案
您可以使用查询中的 limit 属性添加分页限制。但是您能否更具体地了解您的访问模式,您的客户是要查询所有订单还是只查询属于他们的订单?
推荐阅读
- c# - 如何在基于桌面的应用程序中部署 SQL Server 更改
- java - 运营商?和 : 带有布尔值和 void
- javascript - JavaScript:如何修复未捕获的引用错误?
- websocket - WildFly 13 上的 Vaadin 和氛围
- android - 每次代码运行时都会创建 Firestore 云新文档
- python - 异常处理 - AttributeErrror: 'datetime.datetime' 对象没有属性 'sleep'
- treeview - 如何限制/禁用表单视图,同时单击 Odoo 中 one2many 字段的树视图
- android - 如果支持,则在工具栏下显示阴影
- python - matplotlib 中以日期为 x 轴的最简单直方图
- c# - JSON 反序列化器返回 NULL 值