1. 程式人生 > >2、MongoDB學習之索引的管理

2、MongoDB學習之索引的管理

字段 是否 reat 手動 基本 默認 uniq 匹配 會有

目標:實現索引的創建、查詢、刪除、explan管理等操作 環境: > db.version() 3.4.7 索引創建滿足的基本需求: 1;索引提高查詢速度 2;在mongodb中,索引可以按自動列升序/降序來創建,便於排序 3;默認是用btree來組織索引文件,2.4版本以後,也允許建立hash索引 管理索引常用到的語法有: db.c1.createIndex(keypattern[,options]) #keypattern表示索引匹配的字段列,例如name:1 表示那麽列升序建立索引,[,options]表示使用另一個字段列創建索引,從而組成復合索引 db.c1.getIndexes() #查看索引的語法,當還沒有手動創建索引的時候,其實系統默認也會有索引列:_id_ db.c1.find({name:‘test10‘}).explain() #表示查詢name列集合集值test10是否有創建索引 一、索引的創建 常規的索引創建方式有基本索引、復合索引、唯一索引三類。 1、基本索引 > db.c1.createIndex({newname:1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } #由上可以看出創建了一個基本的單列索引 2、復合索引的創建 > db.c1.createIndex({newname:1,age:-1}) 3、唯一索引的創建 唯一索引的主要功能就是只允許字段值唯一 常用語法為: db.c1.ensureIndex(keypattern[,options]) - DEPRECATED, use createIndex() instead > db.c1.ensureIndex({num:1},{unique:true}) 技術分享

技術分享 二、索引的查看 > db.c1.getIndexes() 1;查看基本索引 技術分享 技術分享

2;查看復合索引 技術分享技術分享

3;查看唯一索引 技術分享 技術分享

三、explan索引驗證 創建索引主要是供加快查詢速度的,基本索引創建之後,基於該列查詢會加快速度。復合索引一般是由兩個或者多個列做成索引值,如果是單列條件查詢的話,最開始創建的字段列能夠有效(也就是說復合索引創建後,程序單列查詢會有索引效果),但是之後的字段列的索引查詢是沒有效果的。如果復合索引裏面用到的查詢條件都是創建的復合索引時的列,字段條件查詢時變換位置也沒關系 使用方法: > db.c1.find({newname:‘test5‘},{age:5}).explain() 技術分享 技術分享

#可以看到它的一個復合查詢

技術分享 技術分享

四、索引的刪除 常用的語法: db.c1.dropIndex(index) > db.c1.dropIndex({age:-1}) { "nIndexesWas" : 6, "ok" : 1 } > db.c1.dropIndex({num:1}) { "nIndexesWas" : 5, "ok" : 1 } > db.c1.dropIndex({name:1,age:-1}) { "nIndexesWas" : 4, "ok" : 1 } 技術分享 技術分享

2、MongoDB學習之索引的管理