为了账号安全,请及时绑定邮箱和手机立即绑定

删除了大量数据后 为什么索引大小反而变大了呢?

删除了大量数据后 为什么索引大小反而变大了呢?

慕森王 2018-09-24 16:53:51
将表中历史数据给删除了 只保留了最近一个季度的数据删除前"count" : 1379345, # 总数"size" : 3823247286, # 大小"nindexes" : 4,"totalIndexSize" : 86913024, # 索引大小"indexSizes" : {    "_id_" : 12873728,    "created_at_1" : 17534976,    "storage_time_1" : 7397376,    "guid_1" : 49106944 },删除后"count" : 453978,"size" : 2478837459,"nindexes" : 4,"totalIndexSize" : 89522176,"indexSizes" : {    "_id_" : 12873728,    "created_at_1" : 18096128,    "storage_time_1" : 7397376,    "guid_1" : 51154944 },删除前 VS 删除后count: 1379345 VS 453978 diff: 925,367size: 3823247286 VS 2478837459 diff: 1,344,409,827totalIndexSize: 86913024 VS 89522176 diff: -2,609,152为什么删除了这么多数据后索引大小反而变大了呢?
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

在WiredTiger引擎中,每个索引对应磁盘上一个独立的文件。删除大量数据后,这个文件中对应的索引也被删除了。但是空间是不会释放的,只会尽可能重用。因为想释放这些空间,就必须把空闲空间集中到文件尾,然后截断。没有哪个数据库会主动做这个事情,既低效又没多大意义。
如果实在想做,了解一下compact命令,既慢还阻塞。强烈不建议。

查看完整回答
反对 回复 2018-09-24
  • 1 回答
  • 0 关注
  • 1349 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信