Heim > Fragen und Antworten > Hauptteil
-rw------- 1 root wheel 67108864 8 16 13:49 video.0
-rw------- 1 root wheel 134217728 8 16 13:48 video.1
-rw------- 1 root wheel 268435456 8 16 13:48 video.2
-rw------- 1 root wheel 536870912 8 16 13:48 video.3
-rw------- 1 root wheel 1073741824 8 16 13:49 video.4
-rw------- 1 root wheel 2146435072 8 16 13:49 video.5
-rw------- 1 root wheel 16777216 8 16 13:49 video.ns
我感觉 video.ns 是 video.0 到 video.5 是一个增长的过程 感觉最新的数据就是 video.5 请问其他的数据是可以删掉的吗? 我之前用了rm的命令去删除,之后启动mongo会报错说数据被破坏,这种方式估计是有问题的,想问下有什么其它的方式去释放这些空间。。。。
天蓬老师2017-05-02 09:23:52
如果你仔细算一下的话,
video.0 = 64MB
video.1 = 128MB
video.2 = 256MB
...
video.5 = 2GB
这是MMAPv1引擎的分配空间方式,2的n次方,到2GB之后不再增长。每个文件都是存有实际数据的,不能随便删除
讲真,为什么会想到直接删除数据库的文件?似乎没有哪个数据库支持这样的做法。如果想要释放空间,比较安全的办法应该考虑复制集重新同步,或者repairDatabase。后者有很多限制,请注意仔细看文档。
另外如果没有大规模删除过数据的话,也没有必要进行上面两个操作,因为反正也释放不出什么空间来。