关于MongoDB,你可能不知道的十件事

来源:互联网 发布:数据库mandatory 编辑:程序博客网 时间:2024/05/20 03:46
MongoDB 很简单,参照着一些常用的教程下载相应平台的二进制包、创建dbpath然后启动基本上就可以跑了。但是如果你真的打算在生产环境中使用MongoDB,还是请多进行深入的研究,下面是一位MongoDB的爱好者在参加完MongoNYC大会后总结的十个自己了解到的知识点,看看有没有你不知道的吧。
  • 1.MongoDB有一个大的全局锁,这使得一个MongoDB Daemon只能同时进行一个写操作,即使是对不同collection的操作,也只得排队。
  • 2.MongoDB并没有一个基于统计的查询优化器,对查询并发的执行多个不同的计划,在最快的那个返回后就终止其它任务,并将这个最快的计划指导查询。当然不是每次查询都执行多个不同计划,这个会隔一段时间执行一次。
  • 3.Mongos只有在你使用Sharding时才需要,在不用Sharding时,实际上是客户端来实现负载均衡的。
  • 4.MongoDB不仅仅只有Replica Sets,还有传统的Master-Slave模式。(实际上你想配置成Master-Master也完全可以)
  • 5.MongoDB的同步机器支持“slave-delay”参数,这个参数指定Slave机器延迟Master多长时间。这个参数用来做准备非常合适。
  • 6.MongoDB 使用了mmap,在32位系统下数据文件只能达到2G,所以32位系统下的MongoDB玩玩就够了。
  • 7.MongoDB会在日志里记录执行时间超过100ms的操作,实际上这个是可以灵活配置的。
  • 8.MongoDB可以运行一些耗时较长的统计分析任务。
  • 9.MongoDB不支持多主对单从的架构(这个应该是支持的,原文作者可能理解错了)。
  • 10.MongoDB的Replica Sets 模式下,可以设置一些节点为Arbiter,它们不存储数据,只在需要重新选Primary时参与投票。

原文链接:Ten things I didn’t know about MongoDB