我有一个使用情况,其中我们不会得到那么多包含单个请求中的条目列表的情况需要更新,大多数情况下,仅请求更新单个条目。但是未来可能会增加,因此我考虑使用BatchPutItem而不是PutItem。
- 如果请求中只有一个要更新的项,使用BatchPutItem有什么缺点吗?
- 我认为消耗的RCU相同,但是是否存在其他差异,或者在请求中只有单个条目时,BatchPutItem将和PutItem表现相同?
我有一个使用情况,其中我们不会得到那么多包含单个请求中的条目列表的情况需要更新,大多数情况下,仅请求更新单个条目。但是未来可能会增加,因此我考虑使用BatchPutItem而不是PutItem。
BatchWriteItem
和独立的PutItem
之间的大部分非差异。但你应该知道这些操作的能力也有所不同:
BatchWriteItem
对项目的操作非常有限-您可以删除项目或完全替换它,但仅此而已。PutItem
操作可以是条件性的(仅当某些条件匹配项目的先前值时才替换该项)。该操作还可以无需额外成本返回项目的先前值。UpdateItem
操作甚至可以做更多:除了具有条件性并返回项目的先前值外,此操作还可以修改项目的属性-而不必完全替换它。这些修改甚至可以包括表达式-例如,在原地增加属性。BatchWriteItem
中不可用。如果需要其中任何一项功能,则必须直接使用PutItem
或UpdateItem
,而不能使用单个请求的BatchWriteItem
。BatchWriteItem
处理单个项目不应该有任何缺点,因为您仍然需要构建重试逻辑。