请告诉我是否使用背景索引
db.collection.ensureIndex({ a: 1 }, {background: true})
我的收藏品在几次插入时没有锁定?
答案 0 :(得分:2)
在单个节点上的后台构建索引时,没有长期锁定。但是,在副本集上,您必须注意索引构建如何在副本集的不同节点上发生。
MongoDB v2.4或更低版本 - 在主副本上触发的后台构建导致在辅助副本上构建前台索引,并且将阻止对辅助副本的操作 - 为了避免在辅助节点上构建前台,建议在副本集中构建索引的方法是进行滚动索引构建。您可以在http://docs.mongodb.org/v2.4/tutorial/build-indexes-on-replica-sets/
找到有关它的更多详细信息MongoDB 2.5或更高版本 在MongoDB(v2.6)的最新可用版本上,主副本上的后台索引构建也将在辅助副本上显示为背景。
除锁定外,索引构建是RAM / CPU /磁盘密集型操作,对这些资源的压力可能因数据集而异。我建议在生产环境中相对安静的时间进行索引构建。