我是AWS DynamoDB的新手并且阅读了文档我不是100%确定在 SCAN中使用'限制'参数时,成本计算会发生什么?操作。
我理解应该设计表格,以便主要使用 QUERY 操作,并且 SCAN 将扫描整个表格,从而消耗大量读取容量。我也理解FilterExpression不会影响扫描整个表的成本,但会过滤整个扫描后返回的内容,并且扫描项的总数超过最大数据集大小限制为1 MB,扫描停止并返回结果。
我不确定的是,'限制'参数是一种FilterExpression类型,还是它是否会停止整个扫描,从而降低了阅读成本。
例如,如果我有一个活动表,其排序键是一个日期字段(updatedAt),并且它有一百万行。如果我执行了一个限制= 10的SCAN(为了获得最新的10个活动),我显然会回到10行,但是我会因读取一百万行而被收费吗?成本是我的主要关注点。
答案 0 :(得分:2)
是的,Limit
也会消耗消耗的读取容量,这里是DynamoDB docs的相关部分:
“扫描”操作提供“限制”参数,您可以使用该参数设置请求的页面大小。每个具有较小页面大小的扫描或查询请求使用较少的读取操作,并在每个请求之间创建“暂停”。例如,如果每个项目都是4 KB并且您将页面大小设置为40个项目,那么查询请求将仅消耗40个强一致性读取操作或20个最终一致的读取操作。大量较小的扫描或查询操作可以使您的其他关键请求成功而无需限制。
正如您所看到的页面尺寸较小的每个扫描或查询请求使用较少的读取操作。