扫描查询在DynamoDB中总是很昂贵,还是应该使用范围键

时间:2014-05-15 20:01:25

标签: amazon-dynamodb nosql

我一直在玩Amazon DynamoDB并查看他们的示例,但我认为我仍然对这个例子感到有些困惑。我已经在本地dynamodb实例上创建了示例数据以习惯于查询数据等。示例数据设置了3个“论坛”表 - >'主题' - >'回复'

现在如果我在一个特定的论坛中,线程表有一个我可以查询的ForumName键来返回相关的线程,但是最高级别(显示论坛)是否总是必须是扫描操作?

从我可以收集的内容中,在dynamodb中选择“select *”的唯一方法是使用扫描,我假设在这个实例中 - 论坛的级别非常高,可能行数相对较少 - 它不会'是昂贵的还是你真的更好地创建一个哈希和范围密钥并使用它来查询这个表?我不确定范围键在这个实例中是什么,可能只是一个数字,然后在查询中指定值必须是> 0?或者也许是它创建的日期,查询总是使用过去的常量日期?

我确实尝试使用'GE'(大于或等于)的ComparisonOperator对'Forum'表示例数据进行示例查询,其属性值列表为'S'=>'a',但这表明任何散列键上的条件必须是EQ类型,这意味着我无法执行上述操作,因为我总是需要事先了解我的“名称”值

也许我仍然在努力从RDBS背景出发,特别是因为那里有很多论坛的例子。

感谢

1 个答案:

答案 0 :(得分:0)

我认为使用Scan来获取所有论坛都很好。我认为它非常有效,因为它不会返回任何你不需要的东西(扫描所需的所有工作都是必要的)。此外,由于扫描操作非常简单,因此更容易实现并且更有效率