免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
MongoDB(八):索引

1. 索引

索引支持查詢的有效地提高效率。沒(méi)有索引,MongoDB必須掃描集合的每個(gè)文檔,以選擇與查詢語(yǔ)句匹配的文檔。這種掃描效率很低,需要MongoDB處理大量的數(shù)據(jù)。

索引是特殊的數(shù)據(jù)結(jié)構(gòu),以易于遍歷的形式存儲(chǔ)數(shù)據(jù)集的一小部分。 索引存儲(chǔ)特定字段或一組字段的值,按照索引中指定的字段值排序。

1.1 索引案例

首先創(chuàng)建大量數(shù)據(jù)。

向集合中插入10萬(wàn)條文檔。

for(i=0;i<100000;i++){
db.t1.insert({name:'test'+i, age:i})
}

然后進(jìn)行數(shù)據(jù)查找性能分析。

查找姓名為'test10000'的文檔。

db.t1.find({name:'test10000'})

使用explain()命令進(jìn)行查詢性能分析。

db.t1.find({name:'test10000'}).explain('executionStats')

其中的executionStats下的executionTimeMillis表示整體查詢時(shí)間,單位是毫秒。

性能分析結(jié)果如下:

 

然后我們創(chuàng)建索引。

1表示升序,-1表示降序。 

db.集合.ensureIndex({屬性:1})
如
db.t1.ensureIndex({name:1})

執(zhí)行上面相同的查詢,并進(jìn)行查詢性能分析。

db.t1.find({name:'test10000'}).explain('executionStats')

性能分析結(jié)果如下:

 

1.2 ensureIndex()方法

創(chuàng)建索引,需要使用MongoDB的ensureIndex()方法。

語(yǔ)法:

db.COLLECTION_NAME.ensureIndex({KEY:1})

這里的key是要在其上創(chuàng)建索引的字段的名稱。

ensureIndex()方法也接受選項(xiàng)列表(可選)。

以下是列表:

參數(shù)  

類型

描述

background

Boolean

在后臺(tái)構(gòu)建索引,以便構(gòu)建索引不會(huì)阻止其他數(shù)據(jù)庫(kù)活動(dòng),則指定background的值為true。默認(rèn)值為false。

unique

Boolean

創(chuàng)建一個(gè)唯一的索引,使得集合不會(huì)接受索引鍵或鍵匹配索引中現(xiàn)有值的文檔的插入。 指定true以創(chuàng)建唯一索引。 默認(rèn)值為false

name

String

索引的名稱。如果未指定,則MongoDB通過(guò)連接索引字段的名稱和排序順序來(lái)生成索引名稱。

dropDups

Boolean

在可能有重復(fù)項(xiàng)的字段上創(chuàng)建唯一索引。MongoDB僅索引第一次出現(xiàn)的鍵,并從集合中刪除包含該鍵的后續(xù)出現(xiàn)的所有文檔。指定true以創(chuàng)建唯一索引。 默認(rèn)值為false

sparse

Boolean

如果為true,則索引僅引用具有指定字段的文檔。這些索引在某些情況下(特別是排序)使用的空間較小,但行為不同。默認(rèn)值為false。

expireAfterSeconds

integer

指定一個(gè)值(以秒為單位)作為TTL,以控制MongoDB在此集合中保留文檔的時(shí)間。

v

索引版本

索引版本號(hào)。默認(rèn)索引版本取決于創(chuàng)建索引時(shí)運(yùn)行的MongoDB的版本。

weights

文檔

權(quán)重是從199999之間的數(shù)字,并且表示該字段相對(duì)于其他索引字段在分?jǐn)?shù)方面的意義。

default_language

String

對(duì)于文本索引,確定停止詞列表的語(yǔ)言以及句柄和分詞器的規(guī)則。 默認(rèn)值為英文。

language_override

String

對(duì)于文本索引,要指定文檔中包含覆蓋默認(rèn)語(yǔ)言的字段名稱。默認(rèn)值為language。

1.3 索引的命令

建立唯一所有,實(shí)現(xiàn)唯一約束的功能。

db.t1.ensureIndex({"name":1},{"unique":true})

聯(lián)合所有,對(duì)多個(gè)屬性建立一個(gè)索引,按照f(shuō)ind()出現(xiàn)的順序。

db.t1.ensureIndex({name:1,age:1})

查看文檔所有索引。

db.t1.getIndexes()

查看集合索引大小。

db.t1.totalIndexSize()

刪除索引。

db.ti.dropIndexes('索引名稱')

刪除集合所有索引。

db.t1.dropIndexes()
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MongoDB 索引 | 菜鳥教程
MongoDB索引管理-索引的創(chuàng)建、查看、刪除
MongoDB數(shù)據(jù)庫(kù)索引管理方法
MongoDB性能篇 -創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計(jì)劃
學(xué)習(xí)MongoDB 七: MongoDB索引(索引基本操作)(一)
MongoDB 優(yōu)化
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服