我可以修改MongoDB中的现有索引而不删除它吗?我在文档中没有看到任何相关内容.
我在String字段上有一个非唯一索引.收集约6M文件.这是副本集.
我知道我可以删除索引并添加新索引.但由于两个原因,这是有问题的:
1)在索引不存在的时候,某些查询会非常慢.2)添加新索引(在我的项目中)会在DB上产生非常高的负载,这明显减慢了我的网站速度.
Ada*_*ord 10
没有办法像你描述的那样改变索引,如果有,我认为在性能方面的结果是相似的 - 例如,当这个操作正在进行时,数据库将如何使用一半创建/改变的索引?
相反,我建议使用后台选项在单个节点上构建索引,如果这是您的配置 - 它将花费更长时间但不会干扰您的正常操作.完成后,您可以随意放弃旧索引.
但是,如果您有副本集(推荐),您应该知道索引创建始终(当前)在辅助节点的前台完成.如果您想避免加载辅助节点,那么您应该按照此处列出的步骤一次取出一个成员并在重新加入集合之前构建所需的索引:
http://docs.mongodb.org/manual/administration/indexes/#index-building-replica-sets
更新
从2.6版本开始,可以在辅助库上构建后台索引(有关详细信息,请参阅发行说明).这不会被移植到以前的版本,因此上述说明适用于2.6之前的版本.
最后,作为一般说明,在后台构建的索引通常比在前台构建的索引更大且效率更低,因此上述方法仍然有其用途.
| 归档时间: |
|
| 查看次数: |
6928 次 |
| 最近记录: |