mongodb - 关于Mongo下的文件

【字号: 日期:2023-06-23浏览:21作者:雯心

问题描述

-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会报错说数据被破坏,这种方式估计是有问题的,想问下有什么其它的方式去释放这些空间。。。。

问题解答

回答1:

如果你仔细算一下的话,

video.0 = 64MBvideo.1 = 128MBvideo.2 = 256MB...video.5 = 2GB

这是MMAPv1引擎的分配空间方式,2的n次方,到2GB之后不再增长。每个文件都是存有实际数据的,不能随便删除讲真,为什么会想到直接删除数据库的文件?似乎没有哪个数据库支持这样的做法。如果想要释放空间,比较安全的办法应该考虑复制集重新同步,或者repairDatabase。后者有很多限制,请注意仔细看文档。另外如果没有大规模删除过数据的话,也没有必要进行上面两个操作,因为反正也释放不出什么空间来。

相关文章: