You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求确认MongoDB db.Stats()中WiredTiger跨集合空间复用规则

WiredTiger空闲空间复用规则与dbStats指标说明

你的假设不完全正确,具体细节和官方依据如下:

核心结论

  • 删除集合A的文档后,freeStorage指标确实会上升:这是因为WiredTiger会将删除释放的空间标记为内部空闲,不会立即返还给操作系统,而是留存到MongoDB的内部空间池。
  • 空闲空间并非仅能被原集合A复用:WiredTiger的内部空闲空间是全局共享的,同一数据库内的所有集合(包括集合B)都可以优先复用这部分空闲空间,只有当内部空闲空间不足以容纳新写入的数据时,才会向操作系统申请新磁盘空间,导致fsUsedSize上升。

官方文档依据

MongoDB官方文档明确说明WiredTiger的空间管理机制:

WiredTiger通过预分配文件和内部空闲空间池来优化存储效率。当删除文档、集合或执行数据清理操作时,释放的空间会被纳入全局空闲空间池,可供同一数据库内的任何后续写入操作(包括其他集合的插入、更新)复用。只有主动执行集合级的compact命令或数据库级的db.repairDatabase()操作,才会将未被使用的空间返还给操作系统。

dbStats相关指标补充说明

  • freeStorage:代表MongoDB已向操作系统申请、但当前未被使用的内部空闲空间,这部分空间属于MongoDB已占用的磁盘资源(包含在fsUsedSize内),可全局复用。
  • fsUsedSize:是操作系统层面统计的MongoDB实际占用磁盘空间,只有当内部空闲空间耗尽,新写入需要额外空间时,该值才会增加。

内容的提问来源于stack exchange,提问作者TheDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:57:36