2011-04-04 37 views
3

这可能会在这里(或其他地方)回答之前,但我一直在互联网上混合/没有意见。MongoDB的个人非分布式工作

我从来没有使用除SQL之外的任何其他数据库,然后我遇到了NoSQL DB(特别是mongoDB)。我试了一下。我只是为了好玩而这样做,但是到处都有人说,当你在分布式服务器上使用它时,它确实非常棒。 所以我想知道,如果它主要只在个人计算机上进行小项目和事情有什么帮助(以不平凡的方式)?只有一台服务器时有一些真正的优势。

尽管使用MapReduce(以及与同伴谈论d)会很酷,但是当用于在单个服务器上运行的小型项目时,这不是一种矫枉过正的行为吗?或者还有其他优点吗?我需要一些清晰的想法。对不起,如果我在这里听起来天真。

可选:您使用过的某些示例会很棒。

谢谢。

+0

如果您选择MongoDB,请注意其对32位系统的限制。 – Sergey 2011-04-04 09:57:05

回答

5

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

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

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

4

+1 AdaTheDev - 但也有3件更多的事情,这里要注意:

  1. 耐用性:从1.8版本开始,MongoDB的具有--journal启动时,单台服务器的耐用性,所以现在它更适用于单服务器场景
  2. 选择一个NoSQL DB比说RDBMS不应该由单个或多个服务器设置决定,而是基于数据库建模。例如参见12 - 在MongoDB中存储类似注释的结构很容易。
  3. MapReduce:同样,它依赖于数据建模和需要发生的操作/计算。根据您对数据建模的方式,您可能需要也可能不需要使用MapReduce。
+0

+1主要用于单服务器耐用性:) – AdaTheDev 2011-04-04 09:16:16

相关问题