当前位置: 移动技术网 > IT编程>数据库>MongoDB > MongoDB中创建索引需要注意的事项

MongoDB中创建索引需要注意的事项

2017年12月08日  | 移动技术网IT编程  | 我要评论

流氓教父风靡异世,绿色下载站,锦州夜市

上周在 ruby-china 上发了帖子《mongodb 那些坑》,反映相当热烈,许多回复很有见地,其中一位童鞋深入的提到 mongodb 建索引方法的问题,引发我更深入的了解了 mongodb 建索引的方法和一些注意事项。

在 《mongodb 那些坑》中提到,在前台直接运行建立索引命令的话,将造成整个数据库阻塞,因此索引建议使用 background 的方式建立。但是这也会带来一定的问题,在 2.6 版本之前,在 secondary server 中即使使用 background 方式建立索引,secondary 还是会以 foreground 方式建立索引,它导致 secondary 同样引发数据库阻塞问题。2.6 版本修复了这个 bug,2.6 版之后使用 background 方式建立索引时,真正转向后台运行了。

为了尽量降低建立索引对 mongodb server 的影响,有一种方法是把 mongodb server 转换成 standalone 模式后建立。具体做法如下:

1.首先把 secondary server 停止,在取消 --replset 参数,并且更改 mongodb port 之后重新启动 mongodb,这时候 mongodb 将进入 standalone 模式;

2.在 standalone 模式下运行命令 ensureindex 建立索引,建议使用 foreground 方式运行;

3.建立索引完毕之后关闭 secondary server 按正常方式启动;

4.根据上述 1~3 的步骤轮流为 secondary 建立索引,最后把 primary server 临时转换为 secondary server,同样按 1~3 的方法建立索引,再把其转换为 primary server。

这种方式还是比较麻烦的,但可以把建立索引操作对 mongodb 的影响降到最低,在有些情况下还是值得做的。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网