MongoDB用于个人非分布式工作

MongoDB用于个人非分布式工作,mongodb,mapreduce,nosql,Mongodb,Mapreduce,Nosql,这个问题以前可能在这里(或其他地方)得到回答,但我在互联网上的看法不一 除了类似SQL的数据库之外,我从未使用过其他任何东西,后来我遇到了NoSQL数据库(特别是mongoDB)。我试过了。我这样做只是为了好玩,但到处都在谈论,当你在分布式服务器上使用它时,它真的很棒所以我想知道,如果只在个人电脑上做小项目和事情,它是否有帮助(以一种非平凡的方式)?当只有一台服务器时,是否有一些真正的优势 虽然使用MapReduce会很酷(并与同行讨论:d),但如果将其用于在单个服务器上运行的小型项目,会不会有

这个问题以前可能在这里(或其他地方)得到回答,但我在互联网上的看法不一

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

虽然使用MapReduce会很酷(并与同行讨论:d),但如果将其用于在单个服务器上运行的小型项目,会不会有点过分呢?或者这还有其他好处吗?我需要一些清晰的想法。对不起,如果我在这里听起来很幼稚

可选:一些您使用过/如何使用的示例将非常有用


谢谢。

IMHO,MongoDB完全适用于单服务器/小型项目,并且您不应仅将其用于“大数据”或多服务器项目

如果MongoDB解决了一个特定的需求,那么这与项目的规模无关,所以不要让这个方面影响你。如果您的数据量确实很小,并且只想进行一些基本的聚合,那么使用MapReduce可能有点过火/不是最好的方法-可以使用group操作符来完成这些操作(它目前在返回多少数据方面有一些限制)


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

+1-但这里还有3件事需要注意:

  • 耐久性:从1.8版开始,MongoDB在使用
    --journal
    时具有单服务器耐久性,因此现在它更适用于单服务器场景
  • 选择NoSQL DB而不是RDBMS不应该取决于单个或多个服务器的设置,而是基于数据库的建模。请参阅示例和-在MongoDB中存储类似注释的结构很容易
  • MapReduce:同样,这取决于需要进行的数据建模和操作/计算。根据数据建模的方式,您可能需要或不需要使用MapReduce

  • 如果您选择MongoDB,请注意它对32位系统的限制。