如何选择SQL Vs nosql存储

时间:2013-05-01 09:21:52

标签: mysql sql database nosql

我有一个项目,我期待大量的实时流量和位置信息。该项目尚未开始。我还在建筑设计阶段。因此,不必担心迁移或向后兼容性问题。

我之前对mysql和关系数据库有所了解,但这是我第一次遇到nosql。

我的问题是:我应该选择sql还是nosql存储?我知道关于这个问题有很多意见,而且我一直在做一些阅读,但我仍然不确定我根据哪些因素来决定呢?

1 个答案:

答案 0 :(得分:6)

问题是您的流量量有多大。 NoSQL数据库的优势在于它们可以很好地扩展,因为它们的数据模型更简单(它们可以更容易分发)。但这也意味着你必须放弃很多关系数据库为你提供的东西。这些首先是完整性机制和复杂方便的查询语言。

所以我想第一步是决定你的预期流量以及你需要扩展多少。如果单个数据库服务器能够处理工作负载,您可能希望使用关系数据库。

第二个方面是检索您的数据。在关系数据库中,您有SQL,它允许您制定非常具体的查询。另一方面,关系模型通常会强制您将数据分布在多个表中,即使它们确实属于一个整体(如订单+订购商品)。这是像MongoDB这样的NoSQL数据库的一个好处,你可以将属于一起的东西存储为单个文档。然后检索这个聚合也很容易,但如果你想做更复杂的查询,你必须在数据库之外手动完成。

所以最后你会使用NoSQL主要用于更简单的访问模式,如果你想/需要扩展。关系型DBMS在它们为您提供的功能量方面具有优势。但对于许多任务来说,将数据压缩成关系是不自然的。缩放是可能的,但更复杂。