关系数据库有什么问题?为什么要切换到mongoDB

关系数据库有什么问题?为什么要切换到mongoDB,mongodb,Mongodb,我在浏览他们的网站,我无法理解他们正在解决的问题。关系数据库有什么问题?在JSON文档中存储的数据如何比存储在SQL数据库中的数据更快?在完全规范化的关系数据库中,每次插入通常需要在其他表(及其自己的表)中进行多次查找,以保持数据完整性(FKs)。这通常是一件好事,但需要时间。通常情况下,您需要同时更新不同表中的几行,这会导致更多的查找和事务开销 查询数据库通常还需要查看许多不同的表并合并它们 另一方面,mongoDB文档是一种更简单的构造。每个集合都像一个大型的非规范化表,但所有字段都是可选的

我在浏览他们的网站,我无法理解他们正在解决的问题。关系数据库有什么问题?在JSON文档中存储的数据如何比存储在SQL数据库中的数据更快?

在完全规范化的关系数据库中,每次插入通常需要在其他表(及其自己的表)中进行多次查找,以保持数据完整性(FKs)。这通常是一件好事,但需要时间。通常情况下,您需要同时更新不同表中的几行,这会导致更多的查找和事务开销

查询数据库通常还需要查看许多不同的表并合并它们

另一方面,mongoDB文档是一种更简单的构造。每个集合都像一个大型的非规范化表,但所有字段都是可选的(但仍然是可索引的),因此空间开销非常小(与具有相同设置的关系数据库相比)

它提供了灵活性和速度,但代价是复杂的查询和删除从服务器到客户端(数据库客户端,而不是最终用户客户端;)的数据完整性逻辑


两者都有其用途,但通常的问题是“我们需要与关系数据库不同的东西吗?”在我看来,现在应该是“我们需要比文档数据库更复杂的东西吗?”绝大多数项目都不会。我想如果你对任务中的关系数据库感到满意,你就不必切换到mongoDb。我认为mongodb应该使扩展比rdbms更简单。对于某些任务,我认为您也可以从mongodb中的灵活模式中获益。我认为讨论为具体任务使用一些数据库最有意义