首页 文章

DynamoDB SCAN操作成本为“Limit”参数

提问于
浏览
3

我_1637461_ m不能100%确定在 SCAN 操作中使用' Limit '参数时成本计算会发生什么 .

我知道应该设计表格,以便主要使用 QUERY 操作,并且 SCAN 将扫描整个表格,因此消耗了大量的读取容量 . 我也理解FilterExpression不会影响扫描整个表的成本,但会过滤整个扫描后返回的内容,如果扫描的项目总数超过最大数据集大小限制1 MB,则扫描停止并返回结果 .

我所说的'参数是一种FilterExpression,或者它是否会停止整个扫描,从而降低了读取成本 .

例如,如果我有一个活动表,其排序键是一个日期字段(updatedAt),并且它有一百万行 . 如果我执行了一个限制= 10的SCAN(为了获得最新的10个活动),我显然会回到10行,但是我会因读取一百万行而被收费吗?成本是我的主要关注点 .

1 回答

  • 2

    是的, Limit 也将重新消耗所消耗的读取容量,这里是DynamoDB docs的相关部分:

    扫描操作提供Limit参数,您可以使用该参数设置请求的页面大小 . 每个具有较小页面大小的扫描或查询请求使用较少的读取操作,并在每个请求之间创建“暂停” . 例如,如果每个项目都是4 KB,并且您将页面大小设置为40个项目,那么查询请求将仅消耗40个强一致性读取操作或20个最终一致的读取操作 . 大量较小的扫描或查询操作将允许您的其他关键请求成功而无需限制 .

    如你所见 each Scan or Query request that has a smaller page size uses fewer read operations .

相关问题