84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我们使用的是副本mongo,有一个collection中大概有1.5亿条记录,[size=10GB,Storage Size=3.4GB,Total Index Size:6GB]因为是保存的历史记录,我们使用remove删掉30天前的记录(大概200万),但是发现索引大小从6GB涨到9GB.
请问该如何正确的删除历史记录?
闭关修行中......
一般情况下并不需要什么特别的操作来进行删除操作。MongoDB使用的Btree也是自平衡的不用去重建,除了3.0.7及更早版本有一个bug SERVER-21063会影响btree的平衡外并没有听说有什么特别需要注意的地方。从6G增长到9G这个情况从未听说过。可以看一下从结点的情况是否也是这样。如有可能,为了验证目的,可以删除一个从结点上的索引重新创建看大小是否有不同。编辑:在尝试之前可以试一下compact看是否有用。注意对实例的影响,最好拆一个secondary下来单独测试。
这个在文档中说明了,删除数据的时候并不会删除索引,即使整个集合你全部删除了都不会删除索引。所以这个时候,我建议你进行重建索引。
一般情况下并不需要什么特别的操作来进行删除操作。MongoDB使用的Btree也是自平衡的不用去重建,除了3.0.7及更早版本有一个bug SERVER-21063会影响btree的平衡外并没有听说有什么特别需要注意的地方。
从6G增长到9G这个情况从未听说过。可以看一下从结点的情况是否也是这样。如有可能,为了验证目的,可以删除一个从结点上的索引重新创建看大小是否有不同。
编辑:在尝试之前可以试一下compact看是否有用。注意对实例的影响,最好拆一个secondary下来单独测试。
这个在文档中说明了,删除数据的时候并不会删除索引,即使整个集合你全部删除了都不会删除索引。所以这个时候,我建议你进行重建索引。