MongoDB中创建索引需要注意的事项
上周在ruby-china上发了帖子《MongoDB那些坑》,反映相当热烈,许多回复很有见地,其中一位童鞋深入的提到MongoDB建索引方法的问题,引发我更深入的了解了MongoDB建索引的方法和一些注意事项。
在《MongoDB那些坑》中提到,在前台直接运行建立索引命令的话,将造成整个数据库阻塞,因此索引建议使用background的方式建立。但是这也会带来一定的问题,在2.6版本之前,在secondaryserver中即使使用background方式建立索引,secondary还是会以foreground方式建立索引,它导致secondary同样引发数据库阻塞问题。2.6版本修复了这个Bug,2.6版之后使用background方式建立索引时,真正转向后台运行了。
为了尽量降低建立索引对MongoDBServer的影响,有一种方法是把MongoDBServer转换成standalone模式后建立。具体做法如下:
1.首先把secondaryserver停止,在取消--replSet参数,并且更改MongoDBport之后重新启动MongoDB,这时候MongoDB将进入standalone模式;
2.在standalone模式下运行命令ensureIndex建立索引,建议使用foreground方式运行;
3.建立索引完毕之后关闭secondaryserver按正常方式启动;
4.根据上述1~3的步骤轮流为secondary建立索引,最后把primaryserver临时转换为secondaryserver,同样按1~3的方法建立索引,再把其转换为primaryserver。
这种方式还是比较麻烦的,但可以把建立索引操作对MongoDB的影响降到最低,在有些情况下还是值得做的。
热门推荐
10 给医生简短新年祝福语
11 叔叔生日祝福语简短搞笑
12 关于早晨的祝福语简短
13 简短正能量生日祝福语
14 最美的留言祝福语简短
15 甄嬛传祝福语简短
16 生日祝福语古语简短创意
17 古风中考祝福语简短
18 关云生字祝福语简短