在查询 DynamoDB 时使用投影表达式是否会减少读取容量单位消耗?

问题描述 投票:0回答:2

已阅读 DynamoDB 文档,但无法验证以下内容。

  1. DynamoDB 中 ProjectionExpression 的主要用途是什么?
  2. 是否降低了读取容量单位消耗?
  3. 如果不是 - 无论您阅读整个项目还是仅阅读几个属性,Dynamodb 都会收取相同的费用?

如有任何帮助,我们将不胜感激! 谢谢!

amazon-web-services amazon-dynamodb database nosql
2个回答
16
投票
  1. 通过使用
    ProjectionExpression
    ,您可以减少 DynamoDB 与应用程序之间传输的数据量,从而限制网络带宽。
  2. 事实并非如此。我尝试过,但找不到这方面的官方文档。但是,如果您查看 Query 上的
    this
    ,它表示来自
    FilterExpression
    的过滤器“在处理查询之后、结果返回给用户之前应用”。我会假设
    ProjectionExpression
    s 具有相同的行为。
  3. 与上面的#2 类似,您需要为阅读整个项目付费,而不仅仅是您请求的属性。另一个证明是关于如何计算读/写单元的this文档。他们从不单独提及属性。

16
投票

根据 AWS CLI 命令参考:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dynamodb/query.html “DynamoDB 根据项目大小而不是返回到应用程序的数据量来计算消耗的读取容量单位数。无论您请求所有属性,消耗的容量单位数都将相同(默认行为)或者只是其中的一些(使用投影表达式)。无论您是否使用 FilterExpression,该数字也将相同”

© www.soinside.com 2019 - 2024. All rights reserved.