五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

mongoDB數(shù)據(jù)庫索引快速入門指南

發(fā)布日期:2022-07-15 19:57 | 文章來源:源碼之家

MongoDB 索引

索引通常能夠極大的提高查詢的效率,如果沒有索引,MongoDB在讀取數(shù)據(jù)時必須掃描集合中的每個文件并選取那些符合查詢條件的記錄。

這種掃描全集合的查詢效率是非常低的,特別在處理大量的數(shù)據(jù)時,查詢可以要花費幾十秒甚至幾分鐘,這對網站的性能是非常致命的。

索引是特殊的數(shù)據(jù)結構,索引存儲在一個易于遍歷讀取的數(shù)據(jù)集合中,索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結構。

mongo可以通過創(chuàng)建索引來提高查詢的速度。

1. 開始與準備數(shù)據(jù)

啟動mongo并選擇目標數(shù)據(jù)庫

mongo

use test

然后準備一組數(shù)據(jù)(10萬條數(shù)據(jù),較大的數(shù)據(jù)量)

for(i=0;i<100000;i++){db.test.insert({name:'test'+i,age:i})}

2. 創(chuàng)建索引前

查詢一下name為"test90000"的數(shù)據(jù)。并使用explain方法來查看查詢的性能。

db.test1.find({name:"test90000"}).explain('executionStats')

這里可以看到查詢花了53毫秒

3. 創(chuàng)建索引 createIndex

給字段name創(chuàng)建索引

db.test1.createIndex({name: 1})

查看索引:

給name創(chuàng)建索引之前,_id字段默認為索引,創(chuàng)建后集合有兩個索引,"_id"和"name"。

4. 創(chuàng)建索引后

再次查找該條數(shù)據(jù),并查看查詢的性能,發(fā)現(xiàn)所用時間接近0毫秒。即設定索引后查詢性能大大提升了。

db.test1.find({name:"test90000"}).explain('executionStats')

5. 刪除索引

db.test1.dropIndex({name:1})

查看之

db.test1.getIndexes()

如圖,只剩下了"_id"一個索引。"name"索引已被刪除。

6.唯一索引與符合索引

①唯一索引

db.test1.createIndex({name: 1},{"unique":true})

查看索引

db.test1.getIndexes()

可以看到,unique為true。

設定為唯一索引后,該索引的值不能重復。
(這個特點也可以用于寫爬蟲時不想要某字段的重復數(shù)據(jù)時,達到去重的目的。)

如圖插入一條name重復的數(shù)據(jù)時,會產生如下報錯:

即插入失敗了。

②復合索引

創(chuàng)建多個索引的方式被稱為復合索引。

首先刪掉剛剛創(chuàng)建的索引name

db.test1.dropIndex({name:1})

然后一次創(chuàng)建name,age兩個索引

db.test1.createIndex({'name':1,'age':1})

處理海量數(shù)據(jù)時,在一定的規(guī)則下使用復合索引,可以大幅提升查詢的性能.

到此這篇關于mongoDB數(shù)據(jù)庫索引快速入門指南的文章就介紹到這了,更多相關mongoDB索引內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

香港穩(wěn)定服務器

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部