最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mongodb基础-索引

来源:动视网 责编:小采 时间:2020-11-09 16:30:24
文档

mongodb基础-索引

mongodb基础-索引:1.索引介绍 mongodb的索引和我们遇到的rdbms的索引含义一样,原理也基本一样首先我们先在一个没有索引的集合上做一个查询,具体的查询计划可以通过explain()函数获取: db . t1 . find ({ username : user101 }). explain () { que
推荐度:
导读mongodb基础-索引:1.索引介绍 mongodb的索引和我们遇到的rdbms的索引含义一样,原理也基本一样首先我们先在一个没有索引的集合上做一个查询,具体的查询计划可以通过explain()函数获取: db . t1 . find ({ username : user101 }). explain () { que


1.索引介绍 mongodb的索引和我们遇到的rdbms的索引含义一样,原理也基本一样首先我们先在一个没有索引的集合上做一个查询,具体的查询计划可以通过explain()函数获取: db . t1 . find ({ username : user101 }). explain () { queryPlanner : { plannerVersion

1.索引介绍

mongodb的索引和我们遇到的rdbms的索引含义一样,原理也基本一样 首先我们先在一个没有索引的集合上做一个查询,具体的查询计划可以通过explain()函数获取:
> db.t1.find({"username":"user101"}).explain(){	"queryPlanner" : {	"plannerVersion" : 1,	"namespace" : "suq.t1",	"indexFilterSet" : false,	"parsedQuery" : {	"username" : {	"$eq" : "user101"	}	},	"winningPlan" : {	"stage" : "COLLSCAN",	"filter" : {	"username" : {	"$eq" : "user101"	}	},	"direction" : "forward"	},	"rejectedPlans" : [ ]	},	"serverInfo" : {	"host" : "mongodb1",	"port" : 27017,	"version" : "3.2.6",	"gitVersion" : "05552b562c7a0b3143a729aaa0838e558dc49b25"	},	"ok" : 1}
如果要看详细的执行计划可以在explain添加executionStats或者allPlansExecution
> db.t1.find({"username":"user101"}).explain("allPlansExecution"){	"queryPlanner" : {	"plannerVersion" : 1,	"namespace" : "suq.t1",	"indexFilterSet" : false,	"parsedQuery" : {	"username" : {	"$eq" : "user101"	}	},	"winningPlan" : {	"stage" : "FETCH",	"inputStage" : {	"stage" : "IXSCAN",	"keyPattern" : {	"username" : 1	},	"indexName" : "username_1",	"isMultiKey" : false,	"isUnique" : false,	"isSparse" : false,	"isPartial" : false,	"indexVersion" : 1,	"direction" : "forward",	"indexBounds" : {	"username" : [	"[\"user101\", \"user101\"]"	]	}	}	},	"rejectedPlans" : [ ]	},	"executionStats" : {	"executionSuccess" : true,	"nReturned" : 1,	"executionTimeMillis" : 0,	"totalKeysExamined" : 1,	"totalDocsExamined" : 1,	"executionStages" : {	"stage" : "FETCH",	"nReturned" : 1,	"executionTimeMillisEstimate" : 0,	"works" : 2,	"advanced" : 1,	"needTime" : 0,	"needYield" : 0,	"saveState" : 0,	"restoreState" : 0,	"isEOF" : 1,	"invalidates" : 0,	"docsExamined" : 1,	"alreadyHasObj" : 0,	"inputStage" : {	"stage" : "IXSCAN",	"nReturned" : 1,	"executionTimeMillisEstimate" : 0,	"works" : 2,	"advanced" : 1,	"needTime" : 0,	"needYield" : 0,	"saveState" : 0,	"restoreState" : 0,	"isEOF" : 1,	"invalidates" : 0,	"keyPattern" : {	"username" : 1	},	"indexName" : "username_1",	"isMultiKey" : false,	"isUnique" : false,	"isSparse" : false,	"isPartial" : false,	"indexVersion" : 1,	"direction" : "forward",	"indexBounds" : {	"username" : [	"[\"user101\", \"user101\"]"	]	},	"keysExamined" : 1,	"dupsTested" : 0,	"dupsDropped" : 0,	"seenInvalidated" : 0	}	},	"allPlansExecution" : [ ]	},	"serverInfo" : {	"host" : "mongodb1",	"port" : 27017,	"version" : "3.2.6",	"gitVersion" : "05552b562c7a0b3143a729aaa0838e558dc49b25"	},	"ok" : 1}

这里的执行计划是collscan表示集合扫描,我们给文件username创建一个索引,使用db.collectionname.ensureIndex({"colname":[1/-1]})来创建 --新版本中使用createIndex来替换ensureIndex 其中1表示列的排序是从小大到排序,-1表示从大到小排序.
> db.t1.ensureIndex({"username":1}){	"createdCollectionAutomatically" : false,	"numIndexesBefore" : 1,
文档

mongodb基础-索引

mongodb基础-索引:1.索引介绍 mongodb的索引和我们遇到的rdbms的索引含义一样,原理也基本一样首先我们先在一个没有索引的集合上做一个查询,具体的查询计划可以通过explain()函数获取: db . t1 . find ({ username : user101 }). explain () { que
推荐度:
标签: 介绍 基本 我们
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top