我想知道当我在 dynamodb 中进行查询并使用 filterexpression 而不是 keyconditionexpression 时是否存在成本差异。
我需要创建索引才能使用过滤器表达式吗?
它会增加查询成本吗?
最佳答案
DynamoDB 查询操作,我们可以提供三样东西来选择/过滤数据。
- 分区键:我们必须在 KeyConditionExpression 中提供它
- Range/Sort Key:我们可以在 KeyConditionExpression 中提供缩小范围的查询
- 任何其他属性:我们可以提供以进一步限制 FilterExpression 中的结果
要记住两点:
- 查询消耗的 RCU 量仅取决于 KeyConditionExpression,因此,指定范围/排序键将限制读取/查询的数据量,这有助于节省成本。
- FilterExpression 在查询完成后但在返回结果之前应用。这不会影响 RCU,也不会影响成本,但是,这将有助于返回给客户端的数据量。如果客户在 AWS 之外,那么我们只会节省网络数据成本。
关于aws-lambda - dynamodb keyconditionexpression 与 filterexpression 成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66933595/