DynamoDB vs mongodb vs RDS SQL DB 的成本比较



我现在正在我的应用程序中使用 dynamodb,但尚未投入生产。我有一个应用程序,可以在不同的视图中显示以下项目

1) show list of orders posted by other users from last 3 days to the user
2) show list of orders that user created 
3) show list of orders that user have submitted bids

把它想象成ebay,除了用户发布任务的订单和其他用户竞标它。此外,我们没有在ebay中搜索功能,而是具有树状结构来显示和组织所有订单

level1 - list of states that have available orders from last 3 days, 
level2- list of cities in state that have available orders from last 3 days,
level3- all orders from last 3 days in the city

现在我的架构正在执行大量读取和写入以执行上述操作,并且成本非常高。现在我们只是在测试该应用程序,只创建了 3 个用户和 100 个订单,每天花费我 2 美元。当我在生产中拥有数千名用户和数千个订单时,这个成本将高得离谱。为了进行操作,我正在对完整的订单收集进行全面扫描。

由于这个dynamodb很贵,我正在考虑改用mongodb。我只有在本地运行mongodb的经验,但从未在AWS上部署过它,也没有任何生产经验。但是,我愿意做/学习降低成本。另外,我是 AWS 的新手。我认为mongodb将是便宜的选择,因为它不是根据读写收费的。

另一种选择是使用 RDS SQL DB,但为此我必须重新设计数据库并进行大量更改。

请给我建议,在我的情况下什么是最便宜和最好的选择。谢谢。

DynamoDB 很便宜。你可以看看使用MongoDB Atlas云产品,它也很便宜,但可能不会便宜多少。您正在尝试将苹果与橙子进行比较。

但是,它看起来更像是一个设计问题。您似乎经常根据"过去 3 天"进行一些查询,您应该查看不要太频繁地执行这些查询并使用 ElastiCache 缓存这些结果。

更新:如果您正在进行完整的集合扫描,那么还有其他问题。你需要避免这些。如果尚未使用全局二级索引,请这样做。如果已用完五个辅助数据库,则可以考虑添加一些仅索引数据集合。

关于MongoDB,创建索引更加灵活,因为您可以创建涵盖两个以上字段(例如城市,州和日期)的索引,并且可以创建五个以上的索引,这肯定会简化您的完整扫描场景。此外,您还可以对某些查询使用强大的聚合框架。您仍然应该考虑使用 ElastiCache (redis/memcached) 缓存这些查询。

最新更新