Dynamodb:删除是否计入读取或写入容量?

我无法在 Amazon 中找到有关此内容的文档:有谁知道删除操作是否会计入您的读取或写入容量?

我本来以为它会算作“写入”,但我在测试中看到的行为似乎表明相反的情况。有人可以证实这一点吗?


答案 1

好问题 - 虽然这似乎没有明确指定,但仍有两个强烈的暗示被算作写入操作(正如人们所期望的那样):

1) Amazon DynamoDB 预配置吞吐量指南中的时间序列数据和访问模式部分解决了高效删除问题,并引用了受影响的写入吞吐量:

删除整个表比逐个删除项目要高效得多,这实质上是写入吞吐量的两倍,因为您执行的删除操作与放置操作一样多。

2) DeleteItem API 中的部分响应列出了返回值“消耗的容量单位”,并引用了写入容量单位:

操作消耗的写入容量单位数。此值显示应用于预配吞吐量的数字。有关更多信息,请参阅 Amazon DynamoDB 中的预置吞吐量


答案 2

是的,确实如此。文档清楚地说:

PutItem、和允许条件写入,您可以在其中指定一个表达式,该表达式的计算结果必须为 true 才能使操作成功。如果表达式的计算结果为 false,DynamoDB 仍将消耗表中的写入容量单位:UpdateItemDeleteItem

  • 如果该项目存在,则消耗的写入容量单位数取决于项目的大小。(例如,1 KB 项目的失败条件写入将消耗一个写入容量单位;如果该项目的大小是该大小的两倍,则失败的条件写入将消耗两个写入容量单位。

  • 如果该项目不存在,DynamoDB 将消耗一个写入容量单位。

资料来源:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html#ItemSizeCalculations.Writes


推荐