關於Mongo索引的一些說明

來源:互聯網
上載者:User
這篇文章主要介紹了關於關於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

    強制使用某個索引

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

    設定記錄層級,記錄慢查詢

Tips

  1. 查詢條件順序自動調整

  2. 能為首碼式的Regex命中索引(/^z/)

  3. 對需要大量sort的鍵建立索引,避免全部資料載入到記憶體

  4. $ne、$nin 不會使用索引

索引種類

  • _id索引

  • 單鍵索引

  • 多鍵索引

  • 複合索引

  • 到期索引

  • 全文索引

  • 地理位置索引

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.