【问题标题】:How to "defragment" MongoDB index effectively in production?如何在生产中有效地“整理”MongoDB索引?
【发布时间】:2010-04-30 21:10:32
【问题描述】:

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

我在集合中添加了一些索引,上传了一堆数据,然后删除了所有数据,我注意到索引没有改变大小,类似于 here 报告的行为。

如果我打电话

db.repairDatabase()

然后将索引压缩到接近零。同样,如果我不删除所有数据,而是调用repairDatabase(),则索引会被压缩(可能是因为未使用的扩展被截断了?)。我从 db.collection.stats() 的“totalIndexSize”获取索引大小。

但是,这需要很长时间(我已经阅读过,在大型数据库上可能需要数小时)。我不清楚数据库在运行时对读取或写入的可用性。我猜不太可能。

因为我想运行尽可能少的 mongod 实例,所以我想更多地了解删除后如何管理索引。任何人都可以指出任何事情或提供任何建议吗?

【问题讨论】:

    标签: indexing mongodb admin


    【解决方案1】:

    总结大卫的linked question

    • 除了 db.repairDatabase() 没有办法。
    • 如果您需要最大程度地减少停机时间,请设置主/从配置,并“修复数据库”从站,然后切换从站和主站。

    【讨论】:

      【解决方案2】:

      我认为Reducing MongoDB database file size 回答了你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-28
        • 2011-04-22
        • 2016-02-12
        • 2016-08-03
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 2011-10-23
        相关资源
        最近更新 更多