我刚刚安装了MongoDB 2.0并尝试在早期版本中运行compact命令而不是repair命令.我的数据库目前是空的,这意味着只有一个集合有0个条目和两个系统集合(索引,用户).目前,db在硬盘上占用大约4 GB的空间.db用作临时队列,所有项目在处理后都将被删除.
我试图在mongo shell中运行以下命令.
use mydb
db.theOnlyCollection.runCommand("compact")
Run Code Online (Sandbox Code Playgroud)
它返回
ok: 1
Run Code Online (Sandbox Code Playgroud)
但是仍然在硬盘上占用相同的空间.我也尝试压缩系统集合,但这不起作用.
当我运行正常的修复命令
db.repairDatabase()
Run Code Online (Sandbox Code Playgroud)
数据库是压缩的,只需要400 MB.
任何人都知道为什么compact命令不起作用?
非常感谢你的帮助.
最好
亚历克斯
集合压缩不应减少数据文件的大小。要点是对集合和索引数据进行碎片整理 - 将未使用的空间间隙合并到连续空间中,以便将新数据存储在那里。此外,它实际上可能会增加数据文件的大小:
压缩可能会使数据文件的总大小最多增加 2GB。即使在这种情况下,总的集合存储空间也会减少。
http://www.mongodb.org/display/DOCS/compact+Command#compactCommand-Effectsofacompaction
| 归档时间: |
|
| 查看次数: |
2378 次 |
| 最近记录: |