更新时间:2022-06-21 GMT+08:00
删除命令
- 删除分为逻辑删除(基于条件的remove删除)和快速删除(dropCollection,dropDatabase)。
- 用户做了大量删除操作后,实际数据量可能没有多大变化,但磁盘空间使用量增加了。是因为无论是写入、更新还是删除,以及索引插入和删除等操作,在后台实际上都会转成写入。因为底层的存储引擎(WiredTiger和RocksDB)采用都是appendOnly机制。只有当存储引擎内部数据状态满足一定条件后,会触发内部的compaction操作,进行数据压缩,进而释放磁盘空间。
- 如果整个数据库不需要了,可以执行dropDatabase命令进行删除而不是逻辑删除,这样快速释放磁盘空间。
- 删除操作会涉及到备节点同步,可以指定writeConcern级别。详情请参见Write Concern。
父主题: 基础命令规范