面试题答案
一键面试- 重建索引:使用
reIndex
方法,它会删除现有索引并重新创建,能有效整理碎片化索引。例如在MongoDB shell中,对集合testCollection
重建索引可执行db.testCollection.reIndex()
。这会消耗较多资源,建议在业务低峰期进行。 - 优化插入策略:尽量按索引字段顺序批量插入数据,避免频繁单个插入。批量插入可减少索引碎片产生。如使用
insertMany
方法批量插入多个文档:db.testCollection.insertMany([{field1: value1, field2: value2}, {field1: value3, field2: value4}])
。 - 定期分析索引:通过
db.collection.validate()
命令对集合进行验证,该命令会提供索引相关统计信息,帮助了解索引碎片化程度。根据分析结果决定是否需要进一步处理索引。