首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊MySQL RDS vs亚马逊DynamoDB

亚马逊MySQL RDS vs亚马逊DynamoDB
EN

Stack Overflow用户
提问于 2012-12-20 14:17:06
回答 4查看 91.5K关注 0票数 121

我使用MySQL已经有一段时间了,我对它的结构和SQL查询等很满意。

目前我对它的了解还很少。

哪一个比另一个更好?

DynamoDB的优势是什么?

从MySQL查询到这种扁平式数据库的过渡是什么样的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-20 23:25:18

你可以在here上阅读亚马逊网络服务的解释。

简而言之,如果您主要使用Lookup查询(而不是Join查询),则DynamoDB (和其他NoSQL DB)更好。如果您需要处理大量的数据,那么在使用MySQL (和其他关系数据库)时,您将受到限制。

您不能重用MySQL查询或数据模式,但是如果您花时间学习NoSQL,您将在工具箱中添加一个重要的工具。在很多情况下,DynamoDB给出了最简单的解决方案。

票数 72
EN

Stack Overflow用户

发布于 2012-12-21 00:33:16

实际上,DynamoDB和MySQL是苹果和橙子。DynamoDB是一个NoSQL存储层,而MySQL用于关系存储。您应该根据应用程序的实际需求来选择要使用的内容。事实上,如果两者都使用,某些应用程序可能会得到很好的服务。

例如,如果您存储的数据不适合关系模式(树结构、无模式的JSON表示等)。可以根据单个键或键/范围组合进行查找,那么DynamoDB (或其他NoSQL存储)可能是您最好的选择。

如果您的数据有一个定义良好的模式,可以很好地适应关系结构,并且您需要灵活地以多种不同的方式查询数据(当然,根据需要添加索引),那么RDS可能是更好的解决方案。

将DynamoDB用作NoSQL存储的主要好处是,您可以在所需的任何级别获得有保证的读/写吞吐量,而不必担心管理集群数据存储。因此,如果您的应用程序需要每秒1000次读/写,那么您只需为该级别的吞吐量配置DynamoDB表,而不必真正担心底层基础设施。

RDS具有许多相同的好处,即不必担心基础设施本身,然而,如果您最终需要进行大量写入,以至于最大的实例大小无法跟上,那么您将别无选择(您可以使用read replicas横向扩展读取)。

更新注意: DynamoDb现在支持全局二级索引,因此您现在可以在数据字段上执行优化的查找,而不是散列或散列和范围键的组合。

票数 293
EN

Stack Overflow用户

发布于 2013-07-30 15:46:58

我们刚刚将所有的DynamoDB表迁移到RDS MySQL。

虽然在特定任务中使用DynamoDB可能是有意义的,但在DynamoDB之上构建一个新系统确实不是一个好主意。最好的计划等等,你总是需要从你的数据库中获得额外的灵活性。

以下是我们从DynamoDB迁移过来的原因:

  1. 索引-在不创建新表的情况下,不可能动态更改或添加键。
  2. 查询-查询数据非常有限。尤其是当您想要查询非索引数据时。Joins当然是不可能的,所以你必须在你的代码/缓存层上管理复杂的数据关系。
  3. 备份-与RDS
  4. 图形用户界面的巧妙备份相比,如此繁琐的备份过程是一个令人失望的惊喜-糟糕的用户体验,有限的搜索,没有乐趣。与RDS相比,
  5. 的快速响应时间是有问题的。你发现自己在构建复杂的缓存机制来补偿它,而你本可以在RDS的内部caching.
  6. Data完整性中解决它--虽然流动数据结构的概念听起来很不错,但你的一些数据更好“固定不变”。当一个小bug试图破坏你的数据库时,强类型是一件好事。有了DynamoDB,任何事情都是可能的,事实上,任何可能出错的事情都会发生。

我们现在使用DynamoDB作为一些系统的备份,我相信将来我们会使用它来完成特定的、定义良好的任务。这不是一个糟糕的数据库,只是它不是一个100%服务于你的核心系统的数据库。

就优点而言,我认为是可伸缩性和持久性。它的伸缩性令人难以置信且透明,而且(某种程度上)它总是向上扩展。这些都是非常棒的特性,但它们不能以任何方式弥补缺点。

票数 169
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13966368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档