让我们说,我在dynamodb中有几个项目具有相同的分区键和不同的排序键。
如果我在单个go v / s查询中使用排序键约束单独查询每个项目,那么消耗的读取容量单位之间是否有任何差异?假设一次获取的排序键数量大约为50. official-documentation表示
一个读取容量单位代表一个强烈一致的读取 对于一个项目,第二个或两个最终一致的读取每秒 到4 KB大小。
从这个定义来看,似乎不应该存在差异,因为这个定义与我们查询数据库的方式无关。
除了额外的网络延迟,第二种方法是否有任何其他缺点?
答案 0 :(得分:0)
请注意,成本核算基于读取容量单位(RCU)和写入容量单位(WCU)。
RCU公式: -
RCU = read capacity unit per item × number of reads per second
在进行以下计算之前,请计算项目大小。您可以从AWS控制台获取项目大小。
转到AWS控制台上的dynamodb表 - >概述标签 - >见底部。
让我们谈谈RCU。在上面的例子中,
场景1 - 仅使用哈希键一次性获取所有数据: -
在这种情况下,读取的项目数量将很高(即50项数据)。计算尺寸并检查所需的RCU数量。
场景2 - 使用哈希键和排序键多次获取数据: -
在这种情况下,API将被多次调用。因此,每秒的读取次数将会增加。计算所需的读取次数并检查所需的RCU数量。
比较方案1和2中计算的RCU。选择具有较少RCU的选项以节省成本。