MongoDB 后台中操作索引

MongoDB 后台中操作索引

从服务器或者复制集的次服务器(Slaves and Secondaries)总是在前段来做索引的操作。 即使在主服务器设置参数background:true,当在 the slave/secondary创建索引的时候,仍然不能够提供查询服务。

默认请款下 ensureIndex() 操作是阻塞的, 以及在操作完成之前,会屏蔽数据库所有的操作。1.3.2+, 增加了后台索引参数。

如果要在后台来创建索引,可以添加background:true 。 例子:

> db.things.ensureIndex({x:1}, {background:true});
> db.things.ensureIndex({name:1}, {background:true, unique:true,... dropDups:true});

如果background开启状态,在创建索引的时候,包括写操作都不会被阻塞。在索引创建完成之前,查询还是不能应用索引。

虽然索引操作在后台,可以进行其他的数据库并发操作,但是在shell中,如果索引不完成也不会返回任何的提示。如果要做其他数据库操作在打开一个新的shell。

要注意的是,后台模式使用增量的方法来创建索引,要比前段创建要慢。

可以使用currentOp(),来查看创建索引的操作。也可以使用 db.killOp() 终止这个进程。

 

注意事项
  • 同一时间每个collection只允许创建一个索引。
  • 当后端创建索引的时候,一些系统管理员操作,如 repairDatabase也不能使用。
  • v1.4+版本可以使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值