首頁  >  文章  >  後端開發  >  關於Mongo索引的一些說明

關於Mongo索引的一些說明

不言
不言原創
2018-07-09 10:11:221780瀏覽

這篇文章主要介紹了關於Mongo索引的一些說明,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

索引使用場景

#優:加快查詢速度

劣:增刪改會產生額外的開銷、佔用空間

tips: 傳回集合中一半以上的數據,全表掃描的效率高

索引基礎

基礎運算

檢視索引:db.test.getIndexes()

建立索引:db.test.ensureIndex({" username":1},{"background":true,"name":"index_test_name"}) //已有大量資料時可後台執行不阻塞

刪除索引: db.test.dropIndex({ "username":1})

查看索引大小: db.test.totalIndexSize()

屬性

索引順序:

1為正序,-1為逆序

在複合索引中需注意順序(id:1, age:-1)

索引屬性:

  • 唯一性

db.test.ensureIndex({x:1,y:1},{unique:true})
  • 稀疏性

db.test.ensureIndexx({},{sparse:true/false})
不稀疏(默认):
1. 可插入不存在索引字段的数据,null; 
2. 可筛选不存在字段: db.test.find({m:{$exist:ture}})
稀疏:

最佳化分析方法

  • explain

    已獲知系統如何處理要求

#
cursor  返回游标类型(BasicCursor或BtreeCursor)
nscanned  被扫描的文档数量
n 返回的文档数
millis  耗时(毫秒)
indexBounds  所使用的索引
  • ##hint

    ##hint
  • 強制使用某個索引

    db.test.find({"age":20}).hint({"name":1,"age":1}) // .hint(name_1_age_1)

profile#設定日誌級別,記錄慢查詢

  1. ##Tips

  2. 查詢條件順序自動調整
  3. #能為前綴式的正規表示式命中索引(/^z /)
  4. 對需要大量sort的鍵建立索引,避免全部資料載入記憶體

$ne、$nin 不會使用索引
  • 索引種類
  • _id索引
  • 單鍵索引
  • 多鍵索引

複合索引

#過期索引 ######以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網! ######相關推薦:#########關於Swoole記憶體操作(Table)的介紹################如何修改WordPress圖片位址為相對路徑##########

以上是關於Mongo索引的一些說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn