我使用MySQL已经有一段时间了,我对它的结构和SQL查询等很满意。
目前我对它的了解还很少。
哪一个比另一个更好?
DynamoDB的优势是什么?
从MySQL查询到这种扁平式数据库的过渡是什么样的?
发布于 2012-12-20 23:25:18
你可以在here上阅读亚马逊网络服务的解释。
简而言之,如果您主要使用Lookup查询(而不是Join查询),则DynamoDB (和其他NoSQL DB)更好。如果您需要处理大量的数据,那么在使用MySQL (和其他关系数据库)时,您将受到限制。
您不能重用MySQL查询或数据模式,但是如果您花时间学习NoSQL,您将在工具箱中添加一个重要的工具。在很多情况下,DynamoDB给出了最简单的解决方案。
发布于 2012-12-21 00:33:16
实际上,DynamoDB和MySQL是苹果和橙子。DynamoDB是一个NoSQL存储层,而MySQL用于关系存储。您应该根据应用程序的实际需求来选择要使用的内容。事实上,如果两者都使用,某些应用程序可能会得到很好的服务。
例如,如果您存储的数据不适合关系模式(树结构、无模式的JSON表示等)。可以根据单个键或键/范围组合进行查找,那么DynamoDB (或其他NoSQL存储)可能是您最好的选择。
如果您的数据有一个定义良好的模式,可以很好地适应关系结构,并且您需要灵活地以多种不同的方式查询数据(当然,根据需要添加索引),那么RDS可能是更好的解决方案。
将DynamoDB用作NoSQL存储的主要好处是,您可以在所需的任何级别获得有保证的读/写吞吐量,而不必担心管理集群数据存储。因此,如果您的应用程序需要每秒1000次读/写,那么您只需为该级别的吞吐量配置DynamoDB表,而不必真正担心底层基础设施。
RDS具有许多相同的好处,即不必担心基础设施本身,然而,如果您最终需要进行大量写入,以至于最大的实例大小无法跟上,那么您将别无选择(您可以使用read replicas横向扩展读取)。
更新注意: DynamoDb现在支持全局二级索引,因此您现在可以在数据字段上执行优化的查找,而不是散列或散列和范围键的组合。
发布于 2013-07-30 15:46:58
我们刚刚将所有的DynamoDB表迁移到RDS MySQL。
虽然在特定任务中使用DynamoDB可能是有意义的,但在DynamoDB之上构建一个新系统确实不是一个好主意。最好的计划等等,你总是需要从你的数据库中获得额外的灵活性。
以下是我们从DynamoDB迁移过来的原因:
我们现在使用DynamoDB作为一些系统的备份,我相信将来我们会使用它来完成特定的、定义良好的任务。这不是一个糟糕的数据库,只是它不是一个100%服务于你的核心系统的数据库。
就优点而言,我认为是可伸缩性和持久性。它的伸缩性令人难以置信且透明,而且(某种程度上)它总是向上扩展。这些都是非常棒的特性,但它们不能以任何方式弥补缺点。
https://stackoverflow.com/questions/13966368
复制相似问题