Mysql 如何选择SQL与nosql存储

Mysql 如何选择SQL与nosql存储,mysql,sql,database,nosql,Mysql,Sql,Database,Nosql,我有一个项目,我期待大量的实时交通和位置信息。这个项目还没有开始。我还在建筑设计阶段。因此,不必担心迁移或向后兼容性问题 我以前熟悉mysql和关系数据库,但这将是我第一次接触nosql 我的问题是:我应该选择sql还是nosql存储?我知道有很多关于这个问题的观点,我也读了一些书,但我仍然不确定我是基于哪些因素在它们之间做出决定的?问题是你的流量会有多大。NoSQL数据库的优势在于,它们的数据模型更简单(可以更容易地分布),因此可以很好地扩展。但这也意味着你必须放弃关系数据库提供给你的很多东西

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

我以前熟悉mysql和关系数据库,但这将是我第一次接触nosql


我的问题是:我应该选择sql还是nosql存储?我知道有很多关于这个问题的观点,我也读了一些书,但我仍然不确定我是基于哪些因素在它们之间做出决定的?

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

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

第二个方面是数据的检索。在关系数据库中,您有SQL,它允许您制定非常具体的查询。另一方面,关系模型常常迫使您将数据分布在多个表中,即使它们实际上属于同一个表(如订单+有序项)。这是像MongoDB这样的NoSQL数据库的一个优点,在这里,您可以将属于同一个文档的内容存储在一起。然后,检索此聚合也很容易,但是如果要执行更复杂的查询,则必须在数据库之外手动执行

因此,最终,如果您希望/需要扩展,您将主要使用NoSQL来实现更简单的访问模式。关系型数据库管理系统在提供的功能数量上有其优势。但对于许多任务来说,将数据压入关系中有点不自然。缩放是可能的,但更复杂