主页

索引

模块索引

搜索页面

查看索引

查看:

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()

主页

索引

模块索引

搜索页面