Mongodb索引簡介

學習mongodb,體會mongodb的每一個使用細節,歡迎閱讀威贊的文章。這是威贊發布的第84篇mongodb技術文章,歡迎瀏覽本專欄威贊發布的其他文章。如果您認為我的文章對您有幫助或者解決您的問題,歡迎在文章下面點個贊,或者關注威贊。謝謝。

在Mongodb當中,為集合添加索引能夠提高查詢效率 。如果沒有索引,Mongodb必須掃描集合中的每一個文檔數據來返回查詢結果。如果集合當中包含查詢合適的索引,Mongodb就可以使用該索引限制掃描文檔的數量。盡管索引能夠提高查詢效率,但為集合添加索引會對Mongodb數據寫入性能產生負面的影響。對于大量讀寫的集合,加入索引的代價是昂貴的,因為每一次數據插入和更新,都會帶來索引的更新。

應用場景

當應用經常重復的針對集合中的某個字段或一些字段進行查詢時,系統維護人員使用這些字段來創建索引,能夠提高查詢性能。例如下面的一些場景

場景

索引類型

人力資源部門經常使用員工的id查看員工信息。這可以為用戶的id添加索引來提高查詢效率

單字段索引

銷售人員經常需要查看每個區域的銷售情況。而區域是使用嵌入文檔形式保存在數據庫里的數據,包括多個字段,如城市,區縣和郵編等。系統維護人員則可以在區域這個文檔類型的字段上添加索引來提高查詢性能。但用戶在查詢時,必須使用相同字段的文檔作為過濾條件才可以使用到該索引 。

在嵌入是文檔字段上創建的單字段索引

一個雜貨鋪老板,經常使用清點庫存信息,需要使用商品名稱和數量來查詢數據。系統維護人員可以在商品名稱和數量上添加索引來提高查詢效率

復合索引

用戶可以使用Mongodb Atlas, Mongodb shell和連接數據庫的各種驅動以及客戶端來創建索引。后續的文章中我們會介紹索引的創建方法。

索引結構

索引是保存了集合中部分數據的特殊數據結構。Mongodb使用B-tree這種數據結構來保存數據。很容易使用正序或者倒序來查詢索引或通過索引來排序。索引保存了指定的字段值,并按照用戶的指定的順序進行排序。這種排序好的索引數據結構,能夠方便的支持等值查詢和區間查詢。同時能夠方便的支持排序。

默認索引

在集合創建的時候,Mongodb為_id字段建立的唯一索引。保證用戶不會插入兩個相同_id的文檔。Mongodb不支持用戶修改或刪除默認索引。

索引的命名

索引默認使用字段名稱和用戶指定字段的排序方式來命名。使用下劃線來區分字段名稱和排序方式。例如在字段item和quantity上建立索引,其中item字段使用正序,而quantity字段倒序。{item: 1, quantity: -1}. 建立索引時,1表示正序,而-1表示倒序。則建立索引的默認名稱是 item_1_quantity_-1.

索引建立后就無法重新命名,需要刪除索引重建。

索引構建性能

在索引構建過程當中,應用和客戶端性能可能會被索引的構建造成影響。包括限制對正在構建索引集合的讀寫等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40744.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40744.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40744.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows密碼憑證獲取

Windows HASH HASH簡介 hash ,一般翻譯做散列,或音譯為哈希,所謂哈希,就是使用一種加密函數進行計算后的結果。這個 加密函數對一個任意長度的字符串數據進行一次數學加密函數運算,然后返回一個固定長度的字符串。…

常用字符集與亂碼原因

1.ASCII字符集:僅對英文字符編碼,每個字符用1B編碼,7位二進制足以表示所有ASCII字符集,因此最高位始終為0 2.GBK字符集:GB2312字符集(簡體中文字符集)BIG5字符集(臺灣地區繁體中文字…

服裝購物商城系統小程序-計算機畢業設計源碼35058

摘要 服裝購物商城系統小程序,依托Spring Boot框架的強大支持,為用戶呈現了一個功能豐富、體驗流暢的在線購物平臺。該系統不僅涵蓋了商品展示、用戶注冊登錄、購物車管理、訂單處理、支付集成等核心購物流程,還引入了個性化推薦算法&#xf…

Jmeter使用JSON Extractor提取多個變量

1.當正則不好使時,用json extractor 2.提取多個值時,默認值必填,否則讀不到變量

什么是集港??貨代小白快來點贊收藏-深圳全球利物流有限公司

集港是什么意思? 集港的定義 集港是指將分散在各處的集裝箱集中到港口碼頭堆場的過程,即把各地的集裝箱匯集到港區,準備裝船。在船掛靠碼頭之前,碼頭會制定集港計劃,安排貨船的集裝箱在某個時間段內進入碼頭并擺放好,…

【js】this指向問題

1.首先先明確,this會出現在哪里。 this出現在全局作用域中,或函數作用域中(普通函數、箭頭函數)。 對象是不產生作用域的,對象的{}和函數的{}不一樣,this并不會直接出現在對象或類中,只會出現在…

Android SurfaceFlinger——屏幕狀態初始化(二十二)

對于開機啟動動畫前期準備的相關步驟,我們已經分析了前 5 個,對于第 6 步調用 eglGetDisplay() 函數對 OpenGL ES 初始化并獲取默認屏幕,我們在介紹 OpenGL ES 的時候也進行了詳細的分析,下一步我們我們來分析對屏幕的狀態進行初始化。 1)getInternalDisplayToken:獲取顯…

pycharm小游戲制作

以下是一個使用 Python 和 PyGame庫在 PyCharm中創建一個簡單的小游戲(貪吃蛇游戲)的示例代碼,希望對您有所幫助: import pygame import random# 基礎設置 # 屏幕高度 SCREEN_HEIGHT 480 # 屏幕寬度 SCREEN_WIDTH 600 # 小方格…

Java | Leetcode Java題解之第212題單詞搜索II

題目&#xff1a; 題解&#xff1a; class Solution {int[][] dirs {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};public List<String> findWords(char[][] board, String[] words) {Trie trie new Trie();for (String word : words) {trie.insert(word);}Set<String> a…

VitePress美化

參考資料&#xff1a; https://blog.csdn.net/weixin_44803753/article/details/130903396 https://blog.csdn.net/qq_30678861/category_12467776.html 站點信息修改 首頁部分的修改基本都在.vitepress/config.mts,這個文件內修改。 title 站點名稱 description 描述 top…

運維團隊指南:完善監控指標與優化報警機制

隨著業務規模的不斷擴大和系統復雜度的日益增加&#xff0c;運維團隊面臨著前所未有的挑戰。為了保障系統的穩定性和高效運行&#xff0c;完善監控指標與優化報警機制成為了運維工作中的重中之重。本文將結合運維行業動態&#xff0c;就如何完善監控指標體系、優化報警機制等方…

RedHat運維-Linux SSH基礎3-sshd守護進程

1. sshd這個守護進程提供了OpenSSH服務&#xff0c;請問可以通過編輯哪些配置文件&#xff0c;來配置這個服務呢&#xff1f;________________________ 2. sshd這個守護進程提供了OpenSSH服務&#xff0c;請問可以通過編輯哪些配置文件&#xff0c;來配置這個服務呢&#xff1f…

Java springboot校園管理系統源碼

Java springboot校園管理系統源碼-014 下載地址&#xff1a;https://download.csdn.net/download/xiaohua1992/89364089 技術棧 運行環境&#xff1a;jdk8 tomcat9 mysql5.7 windows10 服務端技術&#xff1a;Spring Boot Mybatis VUE 使用說明 1.使用Navicati或者其它工…

怎么樣調整分類的閾值

調整分類模型的閾值是改變模型對正負類的預測標準的一種方法&#xff0c;常用于提高精確率、召回率或者其他性能指標。以下是如何調整分類閾值的步驟和方法&#xff1a; PS&#xff1a;閾值是針對預測概率&#xff08;表示樣本屬于某個特定類別的可能性&#xff09;來說的 調…

Midjourney 如何使用參考圖像來提升圖像的準確性和相似度?

????圖像提示 ?????♂? 您可以使用圖像作為提示的一部分來影響作業的構圖、樣式和顏色。圖像提示可以單獨使用,也可以與文本提示一起使用 - 嘗試組合具有不同樣式的圖像以獲得最令人興奮的結果。 ???實際圖像提示操作步驟 點擊加號按鈕,雙擊上傳文件,把小黃貓…

超級好用的java http請求工具

kong-http 基于okhttp封裝的輕量級http客戶端 使用方式 Maven <dependency><groupId>io.github.kongweiguang</groupId><artifactId>kong-http</artifactId><version>0.1</version> </dependency>Gradle implementation …

ePTFE膜(膨體聚四氟乙烯膜)應用前景廣闊 本土企業技術水平不斷提升

ePTFE膜&#xff08;膨體聚四氟乙烯膜&#xff09;應用前景廣闊 本土企業技術水平不斷提升 ePTFE膜全稱為膨體聚四氟乙烯膜&#xff0c;指以膨體聚四氟乙烯&#xff08;ePTFE&#xff09;為原材料制成的薄膜。ePTFE膜具有耐化學腐蝕、防水透氣性好、耐候性佳、耐磨、抗撕裂等優…

自然語言處理(NLP)—— 期末復習總

1. 結構主義方法The structural Approach 1.1 語素學Graphemics/音素學phonemics 音素phonemes、書面符號written signs、字符character。這一部分關注語言的最小聲音單位&#xff08;音素phonemes&#xff09;以及這些聲音如何通過書面符號written signs或字符character來表示…

如何做到高級Kotlin強化實戰?(二)

高級Kotlin強化實戰&#xff08;二&#xff09; 2.Kotlin 與 Java 比較 2.Kotlin 與 Java 比較 2.5 字符串拼接 //Java String firstName "Android"; String lastName "enginner"; String message "My name is: " firstName " "…

Web美食分享平臺的系統-計算機畢業設計源碼45429

基于Web美食分享平臺的系統設計與實現 摘 要 本研究基于Spring Boot框架&#xff0c;設計并實現了一個Web美食分享平臺&#xff0c;旨在為用戶提供一個交流分享美食體驗的社區平臺。該平臺涵蓋了用戶注冊登錄、美食制作方法分享發布、點贊評論互動等功能模塊&#xff0c;致力于…