MongoDB用于个人非分布式工作

时间:2011-04-04 08:11:53

标签: mongodb mapreduce nosql

这可能会在此处(或其他地方)得到解答,但我一直在互联网上看到混合/没有观点。

除了像数据库之类的SQL之外,我从未使用过任何其他东西,然后我遇到了NoSQL DB(特别是mongoDB)。我试了一下手。我这样做只是为了好玩,但到处谈论的是,当你在分布式服务器上使用它时它真的很棒。 所以我想知道,如果对于小型项目和事情主要仅在个人计算机上有任何帮助(以非平凡的方式)?当只有一台服务器时,是否有一些真正的优势?

虽然使用MapReduce会很酷(并且将它与同行讨论:d)当用于在单个服务器上运行的小项目时,它不会是一种过度杀伤吗?或者还有其他优点吗?我需要一些明确的想法。对不起,如果我在这里听起来很天真。

可选:您使用过的一些示例很好。

感谢。

2 个答案:

答案 0 :(得分:5)

恕我直言,MongoDB完全适用于单个服务器/小型项目,并不是您只应将其用于“大数据”或多服务器项目的先决条件。

如果MongoDB解决了特定的要求,那么在项目规模上并不重要,所以不要让这个方面影响你。使用MapReduce可能有点过度/不是最好的方法,如果你真的有低数据量并且只是想做一些基本的聚合 - 这些可以使用组操作员来完成(目前在它有多少数据方面有一些限制)返回)。

所以我想我一般说的是,使用正确的工具来完成工作。在小型项目/单个PC上使用MongoDB没有任何问题。如果像SQL Server这样的RDBMS更适合您的项目,那么就使用它。如果像MongoDB这样的NoSQL技术适合,那就使用它。

答案 1 :(得分:4)

AdaTheDev上的

+1 - 但此处还有3件事要注意:

  1. 持久性:从版本1.8开始,MongoDB在使用--journal启动时具有单服务器持久性,因此现在它更适用于单服务器方案
  2. 选择NoSQL DB而不是说RDBMS不应该根据单个或多个服务器设置来决定,而是基于数据库的建模。例如,请参阅12 - 在MongoDB中存储类似注释的结构很容易。
  3. MapReduce:再次,它取决于数据建模和需要发生的操作/计算。根据您对数据建模的方式,您可能需要也可能不需要使用MapReduce。