mongodb删除集合后磁盘空间不释放
mongodb删除集合后磁盘空间不释放,只有用db.repairDatabase()去修复才能释放。
但是在修复的过程中如果出现了非正常的mongodb的挂掉,再次启动时启动不了的,需要先修复才可以,可以利用./mongod --repair --dbpath=/data/mongo/ 如果你是把数据库单独的放在一个文件夹中指定dbpath时就指向要修复的数据库就可以,修复可能要花费很长的时间,在使用db.repairDatabase()去修复时一定要停掉读写,并且mongodb要有备机才可以,不然千万不要随便使用db.repairDatabase()来修复数据库,切记。
修复数据库的实际过程:将所有的文档导出然后马上导入,忽略那些无效的文档.完成以后,会重新建立索引.了解这一机制对理解修复的一些属性有帮助.数据量大的话,会花很多时间.因为所有数据都要验证,所有索引都要重建.修复后可能会比修复前少些文档,因为损毁的文档都被丢弃了.
MongoDB内部有预分配空间的机制,每个预分配的文件都用0进行填充,由于有了这个机制,MongoDB始终保持额外的空间和空余的数据文件,从而有效地避免了由于数据暴增而带来的磁盘压力过大的问题.
由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一个数据文件大小的2倍,每个数据文件最大2G.这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用.
【mongodb删除集合后磁盘空间不释放】
修复数据库还能起到压缩数据的作用,限制的空间(比如删除体积较大的集合,或删除大量文档后腾出的空间)在修复后会被重新回收.
推荐阅读
- 图书集合完毕
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- SpringBoot整合MongoDB完整实例代码
- win7删除新建不自动刷新
- 部署专题集合
- bu删除,不拉黑,不联系
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 故障分析 | MongoDB 5.0 报错 Illegal instruction 解决
- vue|vue 上移 下移 删除 排序
- Java集合框架|Java集合框架 数据结构