MongoDB之索引

索引

  • MongoDB使用是索引時B樹數據結構

索引類型

  • 單字段索引:在文檔的單個字段上創建用戶定義的升序/降序索引,稱為單字段索引
  • 復合索引:多個字段的用戶定義索引,在其中的字段順序有重要的意義
  • 其他索引
    • 地理空間索引:支持對地理空間坐標數據的有效查詢
    • 文本索引:支持在集合中搜索字符串內容,文本索引不存儲特定于語言的停止詞
    • 哈希索引:只支持相等匹配,不支持基於範圍的查詢

查看索引

  • 返回一個集合中的所有索引的數組
   db.collection.getIndexes()

創建索引

  • 單個索引
 db.collection.createIndex(keys,options)
  • keys:包含字段和值對的文檔,字段時索引值,升序指定為1,降序指定為-1
  • options:可選,創建一組控制索引創建的選項的文檔,下面是可選參數
    • background:建索引是否阻塞其他數據庫操作,false為後台創建索引
    • unique:建立的索引是否唯一,默認為false
    • name:索引的名稱,不指定會被自動生成
    • dropDups:3.0以上版本以飛起,建立唯一索引時是否刪除重複記錄,默認false
    • sparse:文檔中不存在數據不啟動索引,默認為false,也就是為空的時候不查詢出來
    • expireAfterSeconds:以秒為單位,設定集合的生存時間
    • v:版本號
    • weights:索引權重值,在1到99999之間
    • default_laguage:文本索引的情況,確定停用詞和詞幹和詞器的規則列表,默認英語
    • language_override:語言覆蓋默認
  • 復合索引(對userid和name同時建立復合索引)
 db.collection.createIndex({userid:1,name:-1})

刪除索引

  • 指定索引的刪除
     db.collection.dropIndex(index(索引名稱))
  • 刪除全部索引
 db.collection.dropIndexs()

執行計劃

  • 可以看查詢性能的執行計劃
 db.collection.find().explain()

覆蓋索引

  • 和mysql的一樣,查詢字段和後面的帶索引的查詢條件一致,而不用再掃描文檔或將文檔帶出內存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值