查看索引 ======== 查看:: db.wei64_gadget_info.getIndexes() // 查看集合中的索引大小 db.COLLECTION_NAME.totalIndexSize() 查看索引是否生效:: db.index_test.find({"sex":1}).explain("executionStats") 相关结果: 示例1:查询字段不包含索引字段: winningPlan.stage=COLLSCAN是全表扫描 示例2:查询字段同时包含索引字段和非索引字段 虽然 winningPlan.stage=FETCH以及winningPlan.inputStage.stage =IXSCAN, 但是其totalKeysExamined和totalDocsExamined都比nReturned大,说明在查询的时候进行了一些没有必要的扫描。 示例3:查询字段同时只包含索引字段: 可以看到返回中的 winningPlan.stage=FETCH(根据索引去检索指定document ) winningPlan.inputStage.stage =IXSCAN(索引扫描) executionStats.nReturned=totalKeysExamined=totalDocsExamined=9表示该查询使用的根据索引去查询指定文档 (nReturned:查询返回的条目,totalKeysExamined:索引扫描条目,totalDocsExamined:文档扫描条目) 索引与排序的设置对查询性能的影响:: db.index_test.find({"age":20}).sort({"sex":-1}).explain() 1. 返回中的winningPlan.stage=SORT 即查询后需要在内存中排序再返回 2. winningPlan.stage变为了FETCH(使用索引) 查看数据库中所有索引:: db.system.indexes.find()