dynamodb keyconditionexpression 与 filterexpression 成本?

dynamodb keyconditionexpression vs filterexpression costs?

我想知道当我在 dynamodb 中进行查询并使用 filterexpression 而不是 keyconditionexpression 时是否存在成本差异。

我需要创建索引才能使用过滤器表达式吗?

它会增加查询成本吗?

DynamoDB 查询操作,我们可以为 select/filter 数据提供三样东西。

  • 分区键:我们必须在 KeyConditionExpression 中提供它
  • Range/Sort Key:我们可以在KeyConditionExpression
  • 中提供缩小查询范围
  • 任何其他属性:我们可以提供以进一步限制 FilterExpression 中的结果

记住两点:

  • 查询消耗的 RCU 量仅取决于 KeyConditionExpression,因此,指定 Range/Sort 键将限制 read/query 的数据量,这有助于节省成本。
  • FilterExpression 在查询完成后但在返回结果之前应用。这不会影响 RCU,也不会影响成本,但是,这将有助于返回给客户端的数据量。如果客户在 AWS 之外,那么我们只会节省网络数据成本。