乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MongoDB(八):索引

       頭號碼甲 2022-04-21

      1. 索引

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

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

      1.1 索引案例

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

      向集合中插入10萬條文檔。

      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表示整體查詢時間,單位是毫秒。

      性能分析結(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()方法。

      語法:

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

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

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

      以下是列表:

      參數(shù)  

      類型

      描述

      background

      Boolean

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

      unique

      Boolean

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

      name

      String

      索引的名稱。如果未指定,則MongoDB通過連接索引字段的名稱和排序順序來生成索引名稱。

      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

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

      v

      索引版本

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

      weights

      文檔

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

      default_language

      String

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

      language_override

      String

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

      1.3 索引的命令

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

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

      聯(lián)合所有,對多個屬性建立一個索引,按照find()出現(xiàn)的順序。

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

      查看文檔所有索引。

      db.t1.getIndexes()

      查看集合索引大小。

      db.t1.totalIndexSize()

      刪除索引。

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

      刪除集合所有索引。

      db.t1.dropIndexes()

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多