DynamoDB:使用范围查询v / s分别查询每个项目

时间:2017-09-07 15:58:41

标签: amazon-web-services amazon-dynamodb

让我们说,我在dynamodb中有几个项目具有相同的分区键和不同的排序键。

如果我在单个go v / s查询中使用排序键约束单独查询每个项目,那么消耗的读取容量单位之间是否有任何差异?假设一次获取的排序键数量大约为50. official-documentation表示

  

一个读取容量单位代表一个强烈一致的读取   对于一个项目,第二个或两个最终一致的读取每秒   到4 KB大小。

从这个定义来看,似乎不应该存在差异,因为这个定义与我们查询数据库的方式无关。

除了额外的网络延迟,第二种方法是否有任何其他缺点?

1 个答案:

答案 0 :(得分:0)

请注意,成本核算基于读取容量单位(RCU)和写入容量单位(WCU)。

RCU公式: -

RCU = read capacity unit per item × number of reads per second

在进行以下计算之前,请计算项目大小。您可以从AWS控制台获取项目大小。

转到AWS控制台上的dynamodb表 - >概述标签 - >见底部。

enter image description here

让我们谈谈RCU。在上面的例子中,

场景1 - 仅使用哈希键一次性获取所有数据: -

在这种情况下,读取的项目数量将很高(即50项数据)。计算尺寸并检查所需的RCU数量。

场景2 - 使用哈希键和排序键多次获取数据: -

在这种情况下,API将被多次调用。因此,每秒的读取次数将会增加。计算所需的读取次数并检查所需的RCU数量。

比较方案1和2中计算的RCU。选择具有较少RCU的选项以节省成本。