DynamoDB:获取一个记录产生一个列表VS获取多个记录

时间:2019-04-23 11:20:50

标签: amazon-dynamodb

我想知道在以下两种情况下 get 操作的性能差异是否可以忽略不计:

  1. 每个条目由一个键字段标识,并且包含代表子条目的对象的列表/集合。 get操作为一个键返回一个记录,该记录包含一个包含多个子记录的列表。
  2. 不是具有子条目列表,而是由复合键标识每个子条目并将其作为常规条目插入。然后,get操作将为一个键返回多个记录。

子问题。如果我的情况如下,哪种方法对我可能更有效? i)我的物品由主钥匙和次钥匙标识; ii)每次都单独插入每个项目; iii)唯一的检索操作类型包括获取主键的所有条目; iv)检索操作要比编写操作多得多。

1 个答案:

答案 0 :(得分:0)

如果始终获得条目的所有子记录,则在读取方面基本上没有区别。在单次输入方法中,您将只获得项目。在多个子记录上,您将使用查询一次返回所有子记录。

但是,例如,如果您要不断添加新的子记录,而只需要读取一个子集(例如最新的或日期范围内的子记录),则子记录的读取效率会更高。

对于写入,取决于使用子记录的子记录数,也可以提高写入效率。一旦子记录的总大小超过1k,则可以更有效地单独编写它们。

根据商品大小,调用Get API会使您每4k花费0.5 RCU。

从表中读取查询API的费用为每4k读取.5 RCU。