-1

我有一个项目,我期待大量的实时交通和位置信息。该项目还没有开始。我还处于建筑设计阶段。因此无需担心迁移或向后兼容性问题。

我以前有 mysql 和关系数据库的知识,但这将是我第一次接触 nosql。

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

4

1 回答 1

7

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

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

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

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

于 2013-05-01T10:59:35.840 回答