【问题标题】:Is DynamoDB the right option for this use case?DynamoDB 是这个用例的正确选择吗?
【发布时间】:2014-03-15 04:13:16
【问题描述】:

我想喜欢 DynamoDB,但主要缺点是查询/扫描整个数据库以提取一个查询的结果。我会更好地使用 MySQL,还是应该注意其他解决方案?

用途:

  • Newsfeed 项目(从 id 为 x,x,x,x,x 的表中提取最新项目)

  • 用户个人资料关系(用户互相关注和加为好友)

  • 用户列表(用户在一个列表中最多可以有 1,000 个项目)

我很乐意混合和匹配数据库解决方案。主要用途是列表。

最终会有几百万个列表,每个列表包含 5 到 1000 个项目。列表格式如下:list_id(bigint)|order(int(1))|item_text(varchar(500))|item_text2(varchar(12))|timestamp(int(11))

此数据库上的主要查询将在“list_relations”表上:

从 list_id=539830 的列表中选择“item_text”

我想我的主要问题。我们可以在不进行缓慢查询/扫描的情况下获取特定 list_id 的所有项目吗?人们所说的“慢”是指一秒钟吗?还是几分钟?

谢谢

【问题讨论】:

标签: php mysql amazon-web-services bigdata amazon-dynamodb


【解决方案1】:

我不会说这是一个好的选择还是正确的选择,但你可以按照你的要求去做。我有一个大型 dynamoDB 实例,其中车辆 VIN 作为哈希,我的范围内还有其他内容,并且我在 vin 和时间戳字段上有一个二级索引,我能够通过时间戳搜索对特定车辆的数千条记录进行快速查询,没问题。

【讨论】:

    【解决方案2】:

    在 DynamoDB 中构建架构需要与在 MySQL 中构建不同的注意事项。

    您希望尽可能避免扫描,这意味着要谨慎选择哈希键。

    根据您的确切查询,您可能还需要多个表具有相同的数据..但根据您的查询需要具有不同的哈希键。

    您也没有提到 DynamoDB 的 LSI 和 GSI 功能,这些功能也有助于您的查询能力,但也有各自的缺点。如果不了解有关您的要求的更多详细信息,很难提供进一步的建议。

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      相关资源
      最近更新 更多