欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mongodb索引相關(guān)

1.索引的相關(guān)介紹:

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站制作、豐滿網(wǎng)絡(luò)推廣、成都微信小程序、豐滿網(wǎng)絡(luò)營(yíng)銷、豐滿企業(yè)策劃、豐滿品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供豐滿建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:chinadenli.net

monggodb的索引也是一顆平衡二叉樹,所以在傳統(tǒng)數(shù)據(jù)庫(kù)中的絕大部分的索引優(yōu)化技術(shù)也是可用的.

注意:MongoDB可以在任意方向上對(duì)數(shù)據(jù)進(jìn)行遍歷(這點(diǎn)和關(guān)系數(shù)據(jù)庫(kù)中的索引不一樣),但這個(gè)僅限于單鍵排序,對(duì)于多鍵排序索引的方向還是比較重要的.

下面是個(gè)單鍵排序無(wú)方向性的具體的例子:

mongodb 索引相關(guān)

 

上面是兩個(gè)查詢的執(zhí)行計(jì)劃,紅色部分的參數(shù)表示,查詢是否在內(nèi)存中有排序操作,

從上面的例子中可以很明顯的看出,無(wú)論是按照iage的降序還是升序排序,查詢都沒有在內(nèi)存中有排序操作.

 

2.mongodb 中的索引類型比較多,我這里僅僅列出比較常見的索引類型,更多的索引類型,參見http://www.cnblogs.com/xinghebuluo/archive/2011/12/19/2293043.html

 

唯一索引:它保證跟已有文檔的索引關(guān)鍵字重復(fù)的文檔不會(huì)被插入

mongodb 索引相關(guān)

 

上面的的例子中已成功創(chuàng)建一個(gè)唯一索引.

 

 

復(fù)合唯一索引:多個(gè)鍵值組合的唯一索引。

復(fù)合唯一索引實(shí)例:

mongodb 索引相關(guān)

 

創(chuàng)建唯一索引的注意事項(xiàng):

(1)唯一索引和不存在的關(guān)鍵字:

當(dāng)保存到集合中的文檔在索引字段沒有值的話,它的索引字段會(huì)被賦值為null然后插入。就是說(shuō),你不可能在唯一索引中插入多個(gè)在某個(gè)索引字段都沒有值的文檔。(多個(gè)null值被認(rèn)為是相等的值)

以下實(shí)例在唯一索引字段上插入多個(gè)null值報(bào)錯(cuò).

 mongodb 索引相關(guān)

 

(2).對(duì)已經(jīng)存在的重復(fù)值的字段創(chuàng)建唯一索引.

   如果直接創(chuàng)建唯一索引肯定是會(huì)報(bào)錯(cuò)的.

mongodb 索引相關(guān)

 

(3).如果一定要在這樣的字段上創(chuàng)建唯一索引,可以在創(chuàng)建唯一索引的時(shí)候指定一個(gè)關(guān)鍵字dropDups來(lái)強(qiáng)制創(chuàng)建索引.但是這種創(chuàng)建索引的方法會(huì)刪除集合中的數(shù)據(jù),所以不建議使用這種方法。

 

使用dropDups強(qiáng)制創(chuàng)建索引范例:

mongodb 索引相關(guān)

 

 

稀疏索引:在mongdo的集合中,每個(gè)文檔的鍵值對(duì)可以不一樣(行的列數(shù)不一樣),那么在一個(gè)索引中,字段可能在某個(gè)文檔中,也有可能不在某個(gè)文檔中,當(dāng)字段不在某個(gè)文檔中的時(shí)候,查詢利用索引得到數(shù)據(jù)時(shí)默認(rèn)情況下會(huì)將沒有這個(gè)字段的文檔查詢出來(lái).

mongodb 索引相關(guān)

以上實(shí)例中的查詢,通過(guò)索引iage 得到了數(shù)據(jù),但是將不包含iage字段的文檔也查詢出來(lái)了,  

這個(gè)時(shí)候可以通過(guò)稀疏索引將那些沒有包含索引字段的文檔過(guò)濾掉.

 

以下是一個(gè)通過(guò)稀疏索引過(guò)濾不包含索引字段的的文檔的例子:

從執(zhí)行計(jì)劃中可以看到,查詢是通過(guò)稀疏索引得到數(shù)據(jù)的,并且查詢出來(lái)的結(jié)果集中全部包含iage字段(過(guò)濾掉了沒有包含iage的文檔).

mongodb 索引相關(guān)

 

3.索引管理:

查看制定集合下的索引信息       :db.collection.getIndexes();

查看當(dāng)前架構(gòu)下的所有索引信息   :db.system.indexes.find({});

創(chuàng)建索引:db.collection.ensureIndex({key:1}},{unique:true,dropDups:true});

hint({}):強(qiáng)制使用某個(gè)鍵值(索引)

還可以在后臺(tái)建立索引db.collection.ensureindex({someFiled:1},{background:1})

優(yōu)點(diǎn):定期釋放鎖,以便客服端寫入數(shù)據(jù).

缺點(diǎn):耗時(shí)較長(zhǎng)

前臺(tái)建立索引(默認(rèn)):

優(yōu)點(diǎn):耗時(shí)相對(duì)較少

缺點(diǎn):索引創(chuàng)建期間客服端不能寫入數(shù)據(jù)


刪除索引:db.collection.dropIndexes() ,db.collection.dropIndex(index)

重建索引:db.test.reIndex()

標(biāo)識(shí)索引: db.collection.ensureIndex({key:1}},{name:"Index_name"});  

 

(1):查看指定集合的所有索引:db.colleciton.getIndexes();

 mongodb 索引相關(guān)

 

 

(2)查看當(dāng)前架構(gòu)下的所有索引信息   :db.system.indexes.find({});

 mongodb 索引相關(guān)

 

(3)創(chuàng)建索引:db.collection.ensureIndex({key:1},{unique:true,dropDups:true,sparse:true})

  上面是創(chuàng)建索引的標(biāo)準(zhǔn)語(yǔ)法,第二個(gè)大括號(hào)({unique:true,dropDups:true,sparse:true})為索引類型參數(shù)。

  Unique:表示唯一索引。

  Sparse:表示稀疏索引.

  dropDups:當(dāng)索引字段中存在重復(fù)值時(shí),強(qiáng)制刪除重復(fù)的文檔,該參數(shù)會(huì)丟失數(shù)據(jù),不建議使用該參數(shù).

 

(4)hint({}):強(qiáng)制使用某個(gè)鍵值(索引)

下面實(shí)例中,從執(zhí)行計(jì)劃可以看出,強(qiáng)制使用索引了。

 

mongodb 索引相關(guān)

 

 

(5).刪除索引:db.collection.dropIndexes() ,db.collection.dropIndex(index)

   

  db.collection.dropIndexes():刪除集合下面的所有索引.

  

mongodb 索引相關(guān)

 

集合test下面已經(jīng)沒有可刪除的索引,_id_ 是系統(tǒng)自帶的索引,無(wú)法手動(dòng)刪除.

 

  db.collection.dropIndex(index_name):刪除指定索引

  mongodb 索引相關(guān)

 

 

(6).當(dāng)索引效率低下的時(shí)候(可能是碎片較多),就需要重建索引了。db.test.reIndex() 。

  db.test.reIndex():重建索引

mongodb 索引相關(guān)

 

重建單個(gè)索引或是 集合下的所有索引。

 

  

4.執(zhí)行計(jì)劃解讀:

正確解讀一個(gè)查詢的執(zhí)行計(jì)劃是優(yōu)化查詢的第一步,所以必須準(zhǔn)確的讀懂查詢的執(zhí)行計(jì)劃:

mongodb 索引相關(guān)

 


 

 

 

網(wǎng)站欄目:mongodb索引相關(guān)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article24/poocje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、Google、響應(yīng)式網(wǎng)站、建站公司、網(wǎng)站設(shè)計(jì)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司