第一部分插入测试数据
#时间稍长for(vari =0; i <200000; i++){ db.numbers.insert({"num": i}); }
验证结果
>db.numbers.find().count() 200000
第二部分索引前奏
2.1monogo关键字explain()
explain()可以查看我们执行命令的内部实现,那么我们先看一下,再没有加索引之前,查询一条数据所需要的时间/扫描等字段
没有对比就没有伤害
没有伤害哪来的动力
首先我们查阅官网中对explain()的介绍,在此它有个参数--verbose[冗长],往下看,发现verbose中又有三个可选参数
1.queryPlanner: 默认model, 也就是执行的计划;2.executionStats: 打印执行的状态;3.allPlansExecution: 打印所有的执行的状态.
返回的结果又有哪些呢?真是一个问题接着一个问题
继续往下走,摘录一段英文
Output cursor.explain() operations canreturninformation regarding:1.queryPlanner, which detailstheplan selectedbythequery optimizerandliststherejected plans;2.executionStats, which detailstheexecutionofthewinning planandtherejected plans;and3.serverInfo, which provides informationontheMongoDB instance.
也就是最多返回三个大的字段,
1.queryPlanner: 查询优化器选择的计划细节,列出了拒绝计划;2.executionStats: 成功的执行计划细节和拒绝计划;3.serverInfo: 提供了MongoDB实例的信息。
有了之上的explain()的主要的使用说明, 那么就可以继续往下继续了.