MongoDB采用了磁盘空间预分配的机制,为了避免磁盘碎片以及使用mmap后造成的近一步的内存碎片,但是随着数据的增删除改操作,数据文件不可避免的会产生空洞,造成磁盘空间和内存的浪费.本文说的是这方面的压缩,数据使用某些压缩算法进行压缩的讨论不在此范围. 在MongoDB 中,大概有两种方法可以解决这种问题,但是都不是无痛方式,所以并不推荐使用. 1.通过 repairDatabase 整理数据文件 repairDatabase 是MongoDB 内置的一个db 上的方法,调用这个方法,Mong