日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

mongoDB數據庫索引快速入門指南_MongoDB

作者:侯小啾 ? 更新時間: 2022-05-26 編程語言

MongoDB 索引

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

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

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

mongo可以通過創建索引來提高查詢的速度。

1. 開始與準備數據

啟動mongo并選擇目標數據庫

mongo

use test

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

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

在這里插入圖片描述

2. 創建索引前

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

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

在這里插入圖片描述

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

3. 創建索引 createIndex

給字段name創建索引

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

在這里插入圖片描述

查看索引:

在這里插入圖片描述

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

4. 創建索引后

再次查找該條數據,并查看查詢的性能,發現所用時間接近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。

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

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

在這里插入圖片描述

即插入失敗了。

②復合索引

創建多個索引的方式被稱為復合索引。

首先刪掉剛剛創建的索引name

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

然后一次創建name,age兩個索引

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

在這里插入圖片描述

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

原文鏈接:https://blog.csdn.net/weixin_48964486/article/details/123643518

欄目分類
最近更新