【问题标题】:Mongodb vs Postgres in Nodejs [closed]Nodejs中的Mongodb vs Postgres [关闭]
【发布时间】:2013-09-17 12:54:17
【问题描述】:

我正在构建一个 NodeJS 应用程序,并且在 NoSQL MongoDB 与 RMDS PostregresSql 之间完全纠结。我的项目是创建一个开源示例项目,用于使用 NodeJS 在网页上记录访问者并实时显示访问者统计信息。一开始我打算使用 MongoDB,因为很多 NodeJS 示例和教程,尽管大多是较旧的,都使用了它,而且免费层的 paas 主机比比皆是。然而,我最近看到很多人抨击 MongoDB,发现尝试使用 MongoDB 的人最终切换到 Postgres:

我也是 Heroku 的粉丝,因此听说过很多关于 Postgres 的事,并且发现 SQL 查询有时会很不错。

我不是数据库专家,所以我一生都无法告诉我该走哪条路。如果您能就应该考虑哪一个以及为什么提供一些建议,我将不胜感激。

我有几个标准:

  1. 因为我希望这是一个示例,所以最好有一种方法来托管大量数据。我知道 MongoDB 肯定提供了这个,但是像 Heroku 这样的 Postgres paas 似乎有相当小的数据库(因为我记录了网站的每个访问者)

  2. 一个简单易懂的数据库。

  3. 性能并不重要,但速度不会受到伤害

感谢大家的帮助!

注意:请不要喷火,每个人都有自己的看法:)

【问题讨论】:

  • 我不明白为什么人们对这个问题投反对票。
  • 我不明白这个问题是如何被关闭为“主要基于意见的”。这类问题——何时使用 SQL,何时使用 NoSQL——是计算机科学和架构决策的实质。
  • Cory House 在他的帖子“为什么我不在 MongoDB 上出售”中有一些很好的分析。特别注意关于 Schema = Protection 的部分。 bitnative.com/2015/04/13/why-im-not-sold-on-mongodb
  • 对于一个有趣的 PostgreSQL、Express、Angular、Node 样板项目,请查看这个基于 MEAN.JS 样板的项目。 github.com/StetSolutions/pean

标签: node.js mongodb postgresql nosql


【解决方案1】:

目前,在 SQL 数据库和 NoSQL 数据库之间进行选择肯定引起了激烈的争论,并且有很多关于这个主题的好文章。我会在最后列出一对。对于您的特定需求,我推荐使用 SQL 而不是 NOSQL 没有问题。

NoSQL 有一组利基用例,其中数据存储在称为文档的大型紧密耦合包中,而不是关系模型中。简而言之,与单个实体紧密耦合的数据(如单个用户使用的所有文本文档)更好地存储在 NoSQL 文档模型中。表现得像 excel 电子表格并且可以很好地成行并且需要进行聚合计算的数据最好存储在 SQL 数据库中,而 postgresql 只是其中几个不错的选择之一。

您可能会考虑的第三个选项是 redis (http://redis.io/),它是一种简单的键值数据存储,在像 SQL 一样查询时速度非常快,但没有严格的类型。

您引用的示例似乎是一个简单的行/列类型问题。您会发现 SQL 语法远没有 MongoDB 的查询语法那么晦涩难懂。 Node 有很多值得推荐的东西,并且该工具集在过去一年中已经显着成熟。我建议使用 monogoose npm 包,因为它减少了原生 mongodb 所需的样板代码量,而且我没有注意到任何性能下降。

http://slashdot.org/topic/bi/sql-vs-nosql-which-is-better/

http://www.infoivy.com/2013/07/nosql-database-comparison-chart-only.html

【讨论】:

  • 我一定会看看redis。
  • Java 服务器环境有问题。 Node.JS 更加稳定。
  • 我的回答不是针对敲 Node.js 的。我在生产环境中使用 Node、Java 和现在的 Dart,它们都有自己的优势。当我查看 OP 的个人资料时,他似乎具有更传统的服务器环境的背景,我想指出 Node 工具集的功能并不像他们想象的那样丰富。如今,随着节点检查器和一些编辑插件的真正改进,这已不再是一个问题。
猜你喜欢
  • 2010-12-10
  • 2012-12-28
  • 2011-02-22
  • 2015-05-27
  • 1970-01-01
  • 2014-12-29
  • 2011-03-23
  • 2014-09-03
  • 1970-01-01
相关资源
最近更新 更多