您好,登錄后才能下訂單哦!
索引:
????查詢語句:
????????db.products.find({
?? ?????????"details.manufacturer": "acme",
?? ?????????"pricing.sale": {
?? ??????????? ?$lt: 7500
?? ?????????}
????????})
????單鍵索引:
????????制造商(manufacturer)和價格(price)
????????
????復合索引:
????????制造商(manufacturer)和價格(price)
????????
????????復合索引的順序很重要!
索引的存在會使寫操作效率稍低一點。所以,只有會被用到的字段才設置索引!
mongodb絕大部分索引使用了B樹數據結構
????唯一索引:
????????db.users.createIndex({"account": 1}, {"unique": true})
??????? (如果插入相同的account,會報異常。建議在創建數據之前創建好索引,以對數據進行約束)
????????如果該數據不重要,可以刪除重復的鍵值文檔,用dropDups參數:
????????db.users.createIndex({account: 1}, {unique: true, dropDups: true})
????稀疏索引:
??????? 索引默認是密集型的。
explain:
通過該命令可以弄清楚mongodb是如何執行查詢的
db.the_table.find({"age":{"$gte":0}}).explain("executionStats")
????
????totalKeysExamined顯示整個掃描的索引數為0,docsExamined顯示掃描整個集合的9個文檔
可以用ensureIndex()或createIndex()來創建索引,其中舊版本用ensureIndex()
????
getIndexes()方法檢查索引是否創建成功:
????
????(集合現在有2個索引:第一個是標準的_id索引;第二個是我們創建的num索引。索引名分別叫_id_和num_1)
????設置索引后用explain查看會有變化:
????????db.numbers.find({num:{"$gt":19995}}).explain("executionStats")
????????????
????????????
????????????
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。