在 Ubuntu Box 上压缩 Mongo 数据库

预分配。Mongo 在空容器中留出了磁盘空间,因此当需要将某些内容写入磁盘时,它不必先将位置移除。它通过加倍算法实现,总是将预先分配的磁盘空间量增加一倍,直到达到 2GB; 然后从其上的每个 prealloc 文件是 2GB。一旦数据被预先分配,除非你明确告知,否则它不会取消分配。因此可观察的 MongoDB 空间使用率会自动上升,但不会下降。

关于 Mongo 预分配的一些研究…
reduce-mongodb-database-file-size
mongo-prealloc-files-taking-up-room

// compact the database from within the Mongo shell
db.runCommand( { compact : 'mycollectionname' } )

// repair the database from the command line
mongod --config /usr/local/etc/mongod.conf --repair --repairpath /Volumes/X/mongo_repair --nojournal

// or dump and re-import from the command line
mongodump -d databasename
echo 'db.dropDatabase()' | mongo databasename
mongorestore dump/databasename