mongodb 索引创建、查询分析

来源:互联网 发布:刘梓晨拍照软件 编辑:程序博客网 时间:2024/05/10 01:28

索引可以加快速度读取,在写入、删除、更新的时候,会受到影响,因为在执行操作的时候,它们都会去读取索引,实际应用中有时候为了加快访问速度, 牺牲掉增删改的一点性能,还是有必要的,具体选择,根据实际使用业务场景,建立合适的索引。

// 添加索引db.collection.createIndex({field: true})// 未添加索引之前,会扫描整个集合, 显示COLLSCAN表示一组扫描,显示IXSCAN指示索引使用。//explain() 查询分析器, 下面type未加索引 db.inventory.find({type:'food'}).explain();结果如下:db.inventory.find({type:'food'}).explain();{        "queryPlanner" : {                "plannerVersion" : 1,                "namespace" : "MyDB.inventory",                "indexFilterSet" : false,                "parsedQuery" : {                        "type" : {                                "$eq" : "food"                        }                },                "winningPlan" : {                        "stage" : "COLLSCAN",                        "filter" : {                                "type" : {                                        "$eq" : "food"                                }                        },                        "direction" : "forward"                },                "rejectedPlans" : [ ]        },        "serverInfo" : {                "host" : "DESKTOP-U0M7P28",                "port" : 27017,                "version" : "3.2.10",                "gitVersion" : "79d9b3ab5ce20f51c272b4411202710a082d0317"        },        "ok" : 1}

这里写图片描述

type字段创建一个索引db.inventory.createIndex({ type: true })// 在使用查询语句db.inventory.find({ type : 'food'}).explain()// 分析结果 db.inventory.find({ type : 'food'}).explain();{        "queryPlanner" : {                "plannerVersion" : 1,                "namespace" : "MyDB.inventory",                "indexFilterSet" : false,                "parsedQuery" : {                        "type" : {                                "$eq" : "food"                        }                },                "winningPlan" : {                        "stage" : "FETCH",                        "inputStage" : {                                "stage" : "IXSCAN",                                "keyPattern" : {                                        "type" : true                                },                                "indexName" : "type_true",                                "isMultiKey" : false,                                "isUnique" : false,                                "isSparse" : false,                                "isPartial" : false,                                "indexVersion" : 1,                                "direction" : "forward",                                "indexBounds" : {                                        "type" : [                                                "[\"food\", \"food\"]"                                        ]                                }                        }                },                "rejectedPlans" : [ ]        },        "serverInfo" : {                "host" : "DESKTOP-U0M7P28",                "port" : 27017,                "version" : "3.2.10",                "gitVersion" : "79d9b3ab5ce20f51c272b4411202710a082d0317"        },        "ok" : 1}

这里写图片描述

1 0
原创粉丝点击