预分配。Mongo在空的容器中留出了磁盘空间,因此,当需要将某些内容写入磁盘时,不必先将数据乱码。它通过加倍算法做到这一点,总是将预分配的磁盘空间加倍,直到达到2GB。然后从那里的每个prealloc文件是2GB。数据被预先分配后,除非您明确告知,否则不会取消分配。因此,可观察到的MongoDB空间使用量会自动增加,但不会减少。
有关Mongo预分配的一些研究...
减少mongodb数据库文件的大小
mongo-prealloc-文件占用空间
// 在Mongo Shell中压缩数据库 db.runCommand( { compact : 'mycollectionname' } ) // 从命令行修复数据库 mongod --config /usr/local/etc/mongod.conf --repair --repairpath /Volumes/X/mongo_repair --nojournal // 或从命令行转储并重新导入 mongodump -d databasename echo 'db.dropDatabase()' | mongo databasename mongorestore dump/databasename