MongoDB compact 命令详解

张友东 2019-07-17

数据存储与数据库 MongoDB wiredtiger DB file

为什么需要 compact

一图胜千言

compact

remove 与 drop 的区别

MongoDB 里删除一个集合里所有文档,有两种方式

  • db.collection.remove({}, {multi: true}),逐个文档从 btree 里删除,最后所有文档被删除,但文件物理空间不会被回收
  • db.collection.drop() 删除集合的物理文件,空间立即被回收

总的来说,remove 会产生逻辑的空闲空间,这些空间能立即用于写入新数据,但文件占用的总物理空间不会立即回收;通常只要持续在写入数据,有物理空间碎片问题并不大,不需要去 compact 集合,有的场景,remove 了大量的数据后,后续的写入可能并不多,这时如果想回收空间,就需要显式的调用 compact。

compact 命令对读写的影响

compact 一个集合,会加集合所在DB的

登录 后评论
下一篇
我是小助手
29026人浏览
2019-07-31
相关推荐
几种主流NoSQL数据库大比拼
4560人浏览
2018-08-21 16:53:28
MongoDB资料汇总
3131人浏览
2012-04-11 09:40:00
MongoDB killOp 案例详解
4370人浏览
2019-05-23 13:21:54
Nodejs内存控制详解(上篇)
1848人浏览
2018-07-23 17:02:38
dream feature coming from mongodb 2.0
961人浏览
2016-03-31 13:23:18
mongorocks引擎原理解析
7478人浏览
2016-12-19 17:00:46
MongoDB如何释放空闲空间?
3203人浏览
2018-07-04 11:38:00
Dockerfile指令详解
832人浏览
2018-07-25 11:09:00
Mongodb安装启动详解
354人浏览
2017-05-15 11:57:00
mongodb的安装详解
225人浏览
2016-04-02 23:11:02
0
1
0
1454