如何在生产环境中有效地“碎片整理”MongoDB索引?

4

我一直在研究MongoDB,感觉不错。

我向一个集合添加了一些索引,上传了一堆数据,然后删除了所有数据,发现索引的大小没有改变,这与这里所报告的行为类似。

如果我调用

db.repairDatabase()

索引被压缩到接近零。如果我不删除所有数据,而是调用repairDatabase(),索引会被压缩一些(可能是因为未使用的扩展被截断?)。我从db.collection.stats()的“totalIndexSize”获取索引大小。
然而,这需要很长时间(我读到在大型数据库上可能需要几小时)。我不清楚数据库在运行时对读写的可用性如何。我猜想不太可用。
由于我希望尽可能少地运行mongod实例,我想了解更多关于删除后如何管理索引的信息。有人能指点我什么或给出任何建议吗?
2个回答

1

总结David的相关问题

  • 除了使用db.repairDatabase()之外,没有其他方法。
  • 如果需要将停机时间最小化,请设置主/从配置,并对从服务器进行“repairDatabase”操作,然后切换主从角色。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接