deleteMany清空集合后索引大小先增后稳的原因咨询
MongoDB集合清空后索引大小波动的原因
批量删除引发的索引临时膨胀:执行
col.deleteMany({})时,MongoDB需要遍历所有索引并移除对应文档的索引记录,这个过程中会产生临时的索引结构调整、操作日志及中间状态数据,导致索引大小短时间内飙升至190.46MB。后台空间回收的延迟特性:MongoDB不会在删除操作完成后立即回收索引占用的磁盘空间,仅将这些空间标记为"可复用"。后台的空间清理进程会在系统空闲时段逐步清理这些标记空间,所以最终索引大小会稳定到110MB——这是清理后的结果,但无法完全回到初始状态。
索引碎片与预分配空间残留:默认的WiredTiger存储引擎会为索引预分配一定空间以优化后续写入性能,同时批量删除后会产生无法彻底清理的索引碎片。这些残留的碎片和预分配空间,使得最终索引大小(110MB)高于初始的80MB。
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture
相关产品推荐
相关产品推荐

