1

我想使用 boto 更新 dynamodb 中的一个项目,我这样做的方式,get_item无论如何我都需要它,然后我更改该项目并将put其返回,是否有任何区别,性能损失或其他,使用update_item而不是put.

4

2 回答 2

6

我不知道两者之间的任何性能差异。无论如何,使用 DynamoDB,您需要为保证的吞吐量付费。

这就是说,UpdateItem允许您仅编辑项目的特定子集。此外,这是使用原子增量的唯一方法。

如果您有一个非常大的 Item 并且想要更新一个小字段,那么您应该使用 UpdateItem 来代替 WriteCapacity。但这是主要用例。

于 2012-10-15T18:03:10.817 回答
5

保存吞吐量,只更新需要更新的字段。update_item 唯一的缺点是它不能作为批处理函数使用。

更正:正如评论中所指出的,Dynamo 实际上使用最大的记录来计算写入容量,所以如果您只更新一个字段,它仍然会根据已经存在的记录的总大小来计算写入,这也适用于您PUT 一条具有相同 ID 的记录。

于 2012-10-15T23:32:37.520 回答