精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MongoDB學習筆記(六) MongoDB索引用法和效率分析

數據庫 其他數據庫 MongoDB
MongoDB中的索引其實類似于關系型數據庫,都是為了提高查詢和排序的效率的,并且實現原理也基本一致。由于集合中的鍵(字段)可以是普通數據類型,也可以是子文檔。MongoDB可以在各種類型的鍵上創建索引。

MongoDB中的索引其實類似于關系型數據庫,都是為了提高查詢和排序的效率的,并且實現原理也基本一致。由于集合中的鍵(字段)可以是普通數據類型,也可以是子文檔。MongoDB可以在各種類型的鍵上創建索引。下面分別講解各種類型的索引的創建,查詢,以及索引的維護等。

一、創建索引

1. 默認索引

MongoDB有個默認的“_id”的鍵,他相當于“主鍵”的角色。集合創建后系統會自動創建一個索引在“_id”鍵上,它是默認索引,索引名叫“_id_”,是無法被刪除的。我們可以通過以下方式查看:

  1. var _idIndex = mongoCollection.Metadata.Indexes.Single(x => x.Key == "_id_");    
  2. Console.WriteLine(_idIndex);   

2. 單列索引

在單個鍵上創建的索引就是單列索引,例如我們要在“UserInfo”集合上給“UserName”鍵創建一個單列索引,語法如下:(1表示正序,-1逆序)

  1. mongoCollection.Metadata.CreateIndex(new Document { { "UserName"1 } }, false);  

接著,我們用同樣方法查找名為“_UserName_”的索引

  1. var _UserName_Index = mongoCollection.Metadata.Indexes.Single(x => x.Key == "_UserName_");    
  2. Console.WriteLine(_UserName_Index);  

3.組合索引

另外,我們還可以同時對多個鍵創建組合索引。如下代碼創建了按照“UserId”正序,“UserName”逆序的組合索引:

  1. mongoCollection.Metadata.CreateIndex(new Document { { "UserId"1 }, { "UserName", -1 } }, false);  

4.子文檔索引

我們可以對文檔類型的鍵創建各種索引,例如單列索引,如下創建用戶詳細信息“Detail”的單列索引:

  1. mongoCollection.Metadata.CreateIndex(new Document { { "Detail"1 } }, false);  

對子文檔的鍵創建組合索引:例如在“Detail.Address”和“Detail.Age”上創建組合索引:

  1. mongoCollection.Metadata.CreateIndex(new Document { { "Detail.Address"1 }, { "Detail.Age", -1 } }, false);  

5.唯一索引

唯一索引限制了對當前鍵添加值時,不能添加重復的信息。值得注意的是,當文檔不存在指定鍵時,會被認為鍵值是“null”,所以“null”也會被認為是重復的,所以一般被作為唯一索引的鍵,***都要有鍵值對。

對“UserId”創建唯一索引(這時候***一個參數為“true”):

  1. mongoCollection.Metadata.CreateIndex(new Document { { "UserId"1 } }, true);  

#p#

二、維護索引

1. 查詢索引

通過索引名查詢的方式已有介紹。但有時候,我們可能忘記了索引名,怎么查詢呢?

下面提供一個遍歷全部索引的方法,打印全部索引信息:

  1. foreach (var index in mongoCollection.Metadata.Indexes)    
  2.  {    
  3.      Console.WriteLine(index.Value);    
  4.  }  

輸出結果示例:

  1. "name""_id_""ns""myDatabase.UserInfo""key": { "_id"1 } }    
  2. "name""_UserId_unique_""ns""myDatabase.UserInfo""key": { "UserId"1 }, "unique"true"_id""4d8f406ab8a4730b78000005" }    
  3. "name""_UserName_""ns""myDatabase.UserInfo""key": { "UserName"1 }, "unique"false"_id""4d8f406ab8a4730b78000006" }    
  4. "name""_Detail.Address_Detail.Age_""ns""myDatabase.UserInfo""key": { "Detail.Address"1"Detail.Age": -1 }, "unique"false"_id""4d8f406ab8a4730b78000007" }    
  5. "name""_UserId_UserName_""ns""myDatabase.UserInfo""key": { "UserId"1"UserName": -1 }, "unique"false"_id""4d8f406ab8a4730b78000008" }    
  6. "name""_Detail_""ns""myDatabase.UserInfo""key": { "Detail"1 }, "unique"false"_id""4d8f406ab8a4730b78000009" }  

可見,集合的索引也是通過一個集合來維護的。name表示索引名,ns表示索引屬于哪個庫哪個集合,key表示索引在哪個鍵上,正序還是逆序,unique表示是否為唯一索引,等等...

2. 刪除索引

新手常陷入的誤區是,認為集合被刪除,索引就不存在了。關系型數據庫中,表被刪除了,索引也不會存在。在MongoDB中不存在刪除集合的說法,就算集合數據清空,索引都是還在的,要移除索引還需要手工刪除。

例如,刪除名為“_UserName_”的索引:

  1. mongoCollection.Metadata.DropIndex("_UserName_");  

下面提供刪除除默認索引外其他全部索引的方法:

  1. public void DropAllIndex()    
  2. {    
  3.     var listIndexes = mongoCollection.Metadata.Indexes.ToList();    
  4.     for (int i = 0; i < listIndexes.Count; i++)    
  5.     {    
  6.         if (listIndexes[i].Key != "_id_")    
  7.         {    
  8.             mongoCollection.Metadata.DropIndex(listIndexes[i].Key);    
  9.         }    
  10.     }    
  11. }  

#p#

三、索引的效率

MongoDB的索引到底能不能提高查詢效率呢?我們在這里通過一個例子來測試。比較同樣的數據在無索引和有索引的情況下的查詢速度。

首先,我們通過這樣一個方法插入10W條數據:

  1. public void InsertBigData()    
  2. {    
  3.     var random = new Random();    
  4.     for (int i = 1; i < 100000; i++)    
  5.     {    
  6.         Document doc = new Document();    
  7.         doc["ID"] = i;    
  8.         doc["Data"] = "data" + random.Next(100000);    
  9.         mongoCollection.Save(doc);    
  10.     }    
  11.     Console.WriteLine("當前有" + mongoCollection.FindAll().Documents.Count() + "條數據");    
  12. }  

然后,實現一個方法用來創建索引:

  1. public void CreateIndexForData()    
  2. {    
  3.     mongoCollection.Metadata.CreateIndex(new Document { { "Data"1 } }, false);    
  4. }  

還有排序的方法:

  1. public void SortForData()    
  2. {    
  3.     mongoCollection.FindAll().Sort(new Document { { "Data"1 } });    
  4. }  

運行測試代碼如下:

  1. static void Main(string[] args)    
  2. {    
  3.     IndexBLL indexBll = new IndexBLL();    
  4.     indexBll.DropAllIndex();    
  5.     indexBll.DeleteAll();    
  6.     indexBll.InsertBigData();    
  7.     Stopwatch watch1 = new Stopwatch();    
  8.     watch1.Start();    
  9.     for (int i = 0; i < 1; i++) indexBll.SortForData();    
  10.     Console.WriteLine("無索引排序執行時間:" + watch1.Elapsed);    
  11.     indexBll.CreateIndexForData();    
  12.     Stopwatch watch2 = new Stopwatch();    
  13.     watch2.Start();    
  14.     for (int i = 0; i < 1; i++) indexBll.SortForData();    
  15.     Console.WriteLine("有索引排序執行時間:" + watch2.Elapsed);    
  16. }  

***執行程序查看結果:

多次測試表明在有索引的情況下,查詢效率要高于無索引的效率。

原文鏈接:http://www.cnblogs.com/lipan/archive/2011/03/28/1997202.html 

【編輯推薦】

  1. MongoDB學習筆記(一) MongoDB介紹及安裝
  2. MongoDB學習筆記(二) 通過samus驅動實現基本數據操作
  3. MongoDB學習筆記(三) 在MVC模式下通過Jqgrid表格操作MongoDB數據
  4. MongoDB學習筆記(四) 用MongoDB的文檔結構描述數據關系
  5. MongoDB學習筆記(五) MongoDB文件存取操作
責任編輯:艾婧 來源: 博客園
相關推薦

2011-09-14 15:30:00

MongoDB

2011-03-08 10:27:25

MongoDB介紹安裝

2011-03-21 13:28:14

MongoDB文件存取

2011-03-17 09:06:34

MongoDB文檔結構

2013-11-19 10:08:06

MongoDB

2024-04-18 10:48:24

MongoDB

2021-12-01 10:18:08

MongoDBMySQL數據庫

2011-03-11 09:16:12

MVCJqgrid

2011-02-23 11:18:48

MongoDBMySQL性能測試

2011-05-26 10:05:48

MongoDB

2010-07-14 17:36:00

Perl運算符

2012-09-20 10:13:04

MongoDB

2011-05-26 16:18:51

Mongodb

2011-03-04 09:32:31

NoSQL就業形勢Cassandra

2011-04-29 13:40:37

MongoDBCommand

2023-12-01 10:21:00

機器學習算法

2011-05-24 09:23:16

MySQLMongoDB

2011-05-24 09:51:07

MySQLMongoDB

2011-03-09 09:18:49

MongoDBsamus

2012-04-19 10:04:20

ibmdw
點贊
收藏

51CTO技術棧公眾號

国产亚洲va综合人人澡精品| 久操精品在线| 亚洲图片自拍偷拍| av一区二区在线看| youjizz在线视频| 精品一区毛片| 欧美一卡2卡3卡4卡| 欧美午夜性视频| 成年网站在线| 国产成+人+日韩+欧美+亚洲| 5278欧美一区二区三区| а天堂中文在线资源| 国内精品麻豆美女在线播放视频| 日本精品免费观看高清观看| 成年丰满熟妇午夜免费视频| 黄色片视频在线观看| 国产激情视频一区二区在线观看 | 久久精彩视频| 亚洲在线精品视频| 国产精品久久久久久模特| 日韩在线欧美在线国产在线| 免费a v网站| 4438五月综合| 在线观看成人小视频| www.九色.com| 黄色av电影在线播放| 久久免费电影网| 俄罗斯精品一区二区三区| 最近日韩免费视频| 欧美专区一区二区三区| 精品视频9999| 老熟妇高潮一区二区三区| 精品国产精品久久一区免费式| 亚洲国产精品美女| 日韩av福利在线观看| 欧美成人app| 日韩欧美在线视频| 69堂免费视频| 久草免费在线视频| 亚洲777理论| 丁香六月激情网| 中文在线观看免费| av在线free| 日韩精品xxx| 亚洲精品ww久久久久久p站| 高h视频在线观看| 福利所第一导航| 色哟哟免费视频| 国产中文日韩欧美| 亚洲一区二区美女| 久久av综合| а√中文在线8| 91嫩草丨国产丨精品| 国产日韩av在线| 国产日韩欧美综合一区| av日韩在线免费观看| av网在线播放| 久久偷窥视频| 日韩免费电影网站| 国产精品资源网站| 精品国产三区在线| 天天射天天干天天| 欧美 日韩精品| 久久久伊人欧美| 亚洲欧美综合色| 动漫一区二区三区| 亚洲一区 中文字幕| 欧美综合77777色婷婷| 亚洲欧美成人精品| 国产suv精品一区二区883| 亚洲精品555| 欧美成人综合色| 国产视频一区二区不卡| 日韩欧美在线1卡| 日本中文一区二区三区| 北岛玲一区二区三区| 91成人破解版| 91手机在线视频| 日韩欧美国产网站| 亚洲三级网站| 丁香婷婷在线| 天堂网一区二区| 久久精品色妇熟妇丰满人妻| 日韩精品99| 在线观看精品一区| 日韩精品aaa| av不卡一区二区| 午夜精品亚洲| 欧美日韩国产三级| 日本少妇一级片| 日韩电影不卡一区| 中文字幕在线视频日韩| 丁香花五月激情| aⅴ色国产欧美| 国产精品亚洲激情| 亚洲av永久无码国产精品久久| 成人av资源在线观看| 欧美一区激情视频在线观看| 日本在线人成| 亚洲成a人片在线观看中文| wwwxxx黄色片| 一区二区三区视频播放| 亚洲色图综合网| 欧美日韩亚洲国产另类| 日欧美一区二区| 97神马电影| www黄在线观看| 亚洲18色成人| 久久精品视频在线观看免费| 九九久久成人| 色综合久久中文字幕综合网小说| 免费的毛片视频| 国产一区二区免费在线| 茄子视频成人在线观看| 色噜噜狠狠狠综合欧洲色8| 欧美无人高清视频在线观看| 偷偷色噜狠狠狠狠的777米奇| 国产精品99久久久久久动医院| 69视频在线免费观看| av资源免费看| 国产精品传媒在线| 国产黄页在线观看| 99精品在免费线中文字幕网站一区 | 欧美精三区欧美精三区| 亚洲第一成人网站| 亚洲香蕉网站| 亚洲一区二区三区四区视频| caoporn国产精品免费视频 | 中文字幕资源网| 91视频91自| 成人一区二区av| 婷婷精品久久久久久久久久不卡| 亚洲色图综合网| 日韩在线 中文字幕| 不卡的av中国片| 亚洲理论电影在线观看| 欧美日韩黄网站| 久久伊人精品天天| 国产又黄又爽视频| 国产精品私人自拍| 亚州精品一二三区| 成人av动漫在线观看| 国产91色在线|| 日本啊v在线| 色综合久久中文字幕| 国产肉体xxxx裸体784大胆| 在线亚洲欧美| 国产一区喷水| 极品av在线| 亚洲精品国产综合区久久久久久久| 精品在线视频免费| 波多野结衣在线一区| 日本黄色片一级片| 97久久综合区小说区图片区| 欧美黑人视频一区| 亚洲精品久久久狠狠狠爱| 亚洲午夜精品久久久久久久久| 香蕉视频1024| 亚洲精选在线| 欧美一区三区二区在线观看| 欧美国产日韩电影| 久久精品久久精品亚洲人| a级片免费观看| 亚洲午夜精品一区二区三区他趣| 中国一级特黄录像播放| 欧美一级专区| 午夜一区二区三区| 在线免费成人| 欧美精品久久久久| 欧美日韩激情视频一区二区三区| 在线影视一区二区三区| 日本一级特级毛片视频| 亚洲熟妇无码久久精品| 中文字幕欧美激情一区| 99日在线视频| 在线日韩中文| 日本一区二区三不卡| 亚洲三级在线| 69精品小视频| 1024国产在线| 精品日本一线二线三线不卡| 天天操天天摸天天干| 亚洲国产精品v| 白丝校花扒腿让我c| 一本久久综合| 伊人av成人| 激情视频极品美女日韩| 日韩av123| 在线视频国产区| 亚洲另类图片色| 国产精品熟女久久久久久| 亚洲成人tv网| 国产欧美小视频| 盗摄精品av一区二区三区| 国产极品美女高潮无套久久久| 99久久婷婷国产综合精品电影√| 国产综合色一区二区三区| 福利一区二区三区视频在线观看| 欧美日韩高清在线观看| 国产黄色在线| 精品日韩欧美在线| 在线视频你懂得| 狠狠久久亚洲欧美专区| 在线看的片片片免费| 久久精品在线观看| 久久久久99人妻一区二区三区| 视频一区视频二区中文字幕| 国产成人一区二区三区别| 欧美精品久久久久久| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | av亚洲精华国产精华| 手机av在线网| 日韩制服丝袜先锋影音| 六月婷婷在线视频| 中文字幕乱码亚洲无线精品一区| 日韩hmxxxx| 婷婷综合福利| 国产精品国产亚洲精品看不卡15 | 日韩美女在线视频| 国产精品xxxxxx| 欧美日韩日本国产| 欧美丰满艳妇bbwbbw| 中文字幕中文字幕一区二区| 丁香激情五月少妇| 91视频.com| 欧美精品欧美极品欧美激情| 国产91丝袜在线播放九色| 日本中文字幕精品—区二区| 久久久夜夜夜| 久久人妻精品白浆国产 | 亚洲丝袜精品丝袜在线| 农村老熟妇乱子伦视频| 日本一区二区三级电影在线观看| 欧亚乱熟女一区二区在线| 高清av一区二区| 国产精品欧美性爱| 国产精品99久久久久久宅男| 激情图片中文字幕| 久久se这里有精品| 中文字幕 91| 麻豆一区二区99久久久久| 激情婷婷综合网| 日韩激情视频在线观看| 亚洲国产精品毛片av不卡在线| 99视频精品免费观看| 91国内免费在线视频| 999福利视频| 国产精品乱码妇女bbbb| 在线观看免费小视频| 久久精品一区四区| 亚洲精品国产精品国自| 久久久.com| 国产精品久久久久久久av| 欧美国产一区二区在线观看 | 中文字幕av一区二区三区高| 成年人免费观看视频网站| 久久色在线视频| 日本xxxxxxxxx18| 国产亚洲综合在线| 日本综合在线观看| 国产精品久久国产精麻豆99网站| 三上悠亚在线观看视频| 亚洲欧美电影院| 欧美交换国产一区内射| 五月综合激情婷婷六月色窝| 精品在线播放视频| 在线精品视频免费播放| 国产91av在线播放| 欧美男男青年gay1069videost| japanese国产| 亚洲精品国产免费| a√资源在线| 欧美另类极品videosbest最新版本 | 日韩美女精品| 视频一区视频二区视频三区高| 久久中文亚洲字幕| 五月天激情图片| 国产精品久久久亚洲一区| 成人黄色一区二区| 老司机午夜精品| 最新日本中文字幕| 久久久电影一区二区三区| 欧美h片在线观看| 午夜影院久久久| 高潮毛片又色又爽免费| 欧美乱妇23p| 蜜桃视频污在线观看| 一个人看的www久久| 亚洲性图自拍| 青青草原一区二区| 国产精品美女久久久久| 精品欧美日韩在线| 色喇叭免费久久综合| 日韩av新片网| 久久爱www久久做| 日本黄色片在线播放| 1区2区3区国产精品| 成年人午夜视频| 欧美一区二区在线观看| 青青草手机在线| 久久91精品国产91久久跳| 韩国美女久久| 99伊人久久| 久久国产成人精品| www.爱色av.com| 国产精品综合久久| 1024在线看片| 欧美色xxxx| 精品区在线观看| 中文字幕日韩精品在线| 无码小电影在线观看网站免费| 国产一区二区丝袜高跟鞋图片| 日韩美女毛片| 又大又硬又爽免费视频| 国内不卡的二区三区中文字幕| 中文字幕人妻一区二区| 亚洲制服丝袜一区| 亚洲专区第一页| 亚洲图片欧美午夜| 国产理论在线| 国产精品区一区| 欧美一区不卡| 在线免费看v片| 中文字幕一区二区三中文字幕 | 5566中文字幕一区二区电影| 国产主播福利在线| 97在线视频免费看| 97青娱国产盛宴精品视频| 可以免费看的黄色网址| 美女久久久精品| 韩国三级hd中文字幕| 日韩欧美亚洲范冰冰与中字| 五月婷婷六月激情| 国语自产精品视频在线看| 日本在线一区二区三区| 北条麻妃一区二区三区中文字幕| 欧美一级特黄aaa| 老司机一区二区| 久久久久无码精品国产sm果冻 | 成人午夜在线| 日韩中文一区二区三区| 久久综合网络一区二区| 99久久国产精| 狠狠久久亚洲欧美专区| 无码精品一区二区三区在线| 欧美精品videosex性欧美| 美女精品久久| 丁香色欲久久久久久综合网| 国产成+人+日韩+欧美+亚洲| 国产在线综合网| 欧美一区二区不卡视频| 深夜国产在线播放| 国产精品12| 一区二区福利| 亚洲AV无码国产成人久久| 色噜噜狠狠色综合中国| 国产日韩精品在线看| 国产精品美女久久久久av超清| 成人精品影视| 一级黄色在线播放| 一级女性全黄久久生活片免费| 精品国自产在线观看| 欧美激情精品久久久久久久变态 | 精品一二三四区| 麻豆明星ai换脸视频| 欧美成人综合网站| 成人在线黄色电影| 欧美日韩在线一二三| 日韩av高清在线观看| 少妇的滋味中文字幕bd| 67194成人在线观看| 欧美videosex性极品hd| 精品乱色一区二区中文字幕| 视频在线在亚洲| 国产女人18水真多毛片18精品| 精品国产乱码久久久久久1区2区 | 亚洲视频免费| 老司机福利av| 精品视频1区2区3区| 日本动漫理论片在线观看网站 | 性欧美69xoxoxoxo| 人妻体内射精一区二区三区| 色综合天天综合网天天狠天天| 自拍视频在线网| 国产经品一区二区| 日韩极品在线观看| 免费在线观看国产精品| 精品亚洲aⅴ在线观看| 久久av影院| 国产婷婷一区二区三区| 国产精品系列在线| 亚洲精品国产手机| 国产精品久久久久国产a级| 亚洲精品国产首次亮相| theav精尽人亡av| 在线播放一区二区三区| 国内激情视频在线观看| 在线观看亚洲视频啊啊啊啊| 91麻豆视频网站| av中文字幕观看|