MongoDB 索引

类似关系型数据库,mongodb也建立自己的一套索引机制和查询优化方法。本文简单介绍mongodb的索引。后续文章讲详细介绍索引的操作,监控和查询优化方法等。

索引

索引,是一组按照特殊结构排列的,方便检索的数据。索引中保存了集合中的一小部分数据。Mongodb,按照系统默认和用户指定的列名称建立索引。Mongodb索引使用B tree结构保存。

索引保存了一个字段或多个字段的数据。并按照指定字段的顺序排列。按照有顺序的索引排列数据。Mongodb可以快速匹配所需要查询的数据,或者匹配在某个阈值区间的数据。另外,基于索引定义的顺序,mongodb能够快速返回排序后的结果。

索引的作用

为数据集合添加索引,可以提高查询效率,限制查询中检索文档的数量,提高排序的效率。没有索引,mongodb需要查询数据集合中的每一个文档,来返回所需要的数据。

索引的副作用

在提高查询效率的同时,索引也带来了一些副作用。每一次数据的插入和更新,都会引起索引的更新。构建新的索引过程中,应用查询性能会造成严重的影响。Mongodb或限制索引构建过程中数据的读写。另外,索引会带来额外的存储开销,占用服务器的存储空间。对于大量数据写入和更新的数据库,索引的增加会降低数据写入和更新的速度。

使用场景

系统重复使用一个或多个字段查询数据库,就可以在这一个或多个字段上添加索引。

默认索引

在Mongodb中添加新的集合时,mongodb为_id字段创建索引,并添加唯一限制,保证数据插入时不会出现相同的id. 默认由_id列创建的索引,不可以删除。

索引名称

默认索引名称由索引列和索引列的顺序构成,使用下划线进行区分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/142377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔试题之指针和数组的精讲

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

论文笔记:AttnMove: History Enhanced Trajectory Recovery via AttentionalNetwork

AAAI 2021 1 intro 1.1 背景 将用户稀疏的轨迹数据恢复至细粒度的轨迹数据是十分重要的恢复稀疏轨迹数据至细粒度轨迹数据是非常困难的 已观察到的用户位置数据十分稀疏,使得未观察到的用户位置存在较多的不确定性真实数据中存在大量噪声,如何有效的挖…

2023NOIP A层联测31总结

2023NOIP A层联测31总结 T 1 T1 T1 暴力操作: 给你一个长度为 n n n 的序列 a a a ,你可以花费 c x c_x cx​ 使得 a i a_i ai​ 变为 [ a i / x ] [a_i / x] [ai​/x] ,你总共有 k k k 元。为最终序列的中位数最小是多少。保证 n n …

63基于matlab的生物地理的优化器(BBO)被用作多层感知器(MLP)的训练器。

基于matlab的生物地理的优化器(BBO)被用作多层感知器(MLP)的训练器。粒子群优化(PSO)、蚁群优化(ACO)、遗传算法(GA)、进化策略(ES)和…

selenium headless 无头模式慢

selenium设置headlessTrue发现非常慢,headlessFalse要快很多。 最后测试发现升级到selenium最新版本,selenium4.15.2。设置--headlessnew,解决了,速度正常了。 新版selenium有了两种headless模式,参见:He…

Prim算法(C++)

目录 介绍: 代码: 结果: 介绍: Prim算法是一种用于解决最小生成树问题的贪心算法。该算法的主要思想是从一个顶点开始,不断向图中添加边,直到构成一棵包含所有顶点的生成树,使得树的边权之…

Rust编程中的线程间通信

1.消息传递 为了实现消息传递并发,Rust 标准库提供了一个 信道(channel)实现。信道是一个通用编程概念,表示数据从一个线程发送到另一个线程。 可以将编程中的信道想象为一个水流的渠道,比如河流或小溪。如果你将诸如…

VS项目属性变量

VS项目属性变量 $(SolutionDir) 获取解决方案的路径 $(Platform) 平台名字 → x86 / x64 $(ProjectName) 工程名字 $(Configuration) 当前的项目模式 → Debug / Release

No205.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

架构问题自查

一、系统分析 识别和理解业务需求,可从业务全局角度,对需求进行建模设计 可在指导下阅读和理解需求文档、参与需求评审会并可理解需求内容(参与需求分析/评审的相关邮件,会议纪要等) 可阅读和理解需求文档、参与需求评审会并可理解需求内容(参与需求分析/评审的相关邮件,…

主题讲座:全球增材制造现状与未来(暨香港科技大学广州|智能制造学域2024博士学位全额奖学金项目)

时间:2023 年11月16日(星期四)14:30 地点:合肥工业大学 学术会议中心三楼报告厅 主讲嘉宾:陈模军 助理教授 https://facultyprofiles.hkust-gz.edu.cn/faculty-personal-page/CHEN-Mojun/mjchen 报名表直达&#xff1…

学习samba

文章目录 一、samba介绍二、samba的主要进程三、配置文件四、例子 一、samba介绍 1、SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System)。 2、是Windows和类Unix系统之间共享文件的…

list复制出新的list后修改元素,也更改了旧的list?

例子 addAll() Testpublic void CopyListTest(){Student student Student.builder().id(1).name("张三").age(23).classId(1).build();Student student2 Student.builder().id(2).name("李四").age(22).classId(1).build();List<Student> student…

Java读取文件内容写入新文件

要实现读写文件这个过程我们需要导入以下的包 import java.io.BufferedReader; import java.io.BufferedWriter;BufferedReader 用于逐行读取源文件的内容&#xff0c;BufferedWriter 用于逐行写入目标文件。 下面以示例了解如何操作&#xff1a; import java.io.BufferedRe…

警方打击了大规模网络钓鱼提供商BulletProftLink

导语 最近&#xff0c;马来西亚皇家警察宣布成功打击了一个名为BulletProftLink的大规模网络钓鱼提供商。这个提供超过300个钓鱼模板的平台被查封&#xff0c;给全球网络安全带来了巨大的利好消息。本文将带您了解这个引人注目的行动背后的故事&#xff0c;并揭示BulletProftLi…

Ubuntu 和 Windows 文件互传

FTP 服务 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面&#xff0c; 向用户提供了一组用来管理计算机之间文件传输的应用程序。在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传输&#xff0c;比如在 Windwos 下进行代码编写&#xff0c;然后将编写好的代码拿到…

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图,Kotlin(6)

Android拖放startDragAndDrop拖拽Glide灵活加载堆叠圆角图&#xff0c;Kotlin&#xff08;6&#xff09; Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图&#xff0c;Kotlin&#xff08;5&#xff09;-CSDN博客文章浏览阅读1.3k次。&#xfeff;&#xfeff;Android Dyna…

Vue 事件修饰符

Vue 事件修饰符 在 Vue 中&#xff0c;事件修饰符允许我们在处理 DOM 事件时添加一些特殊的修饰符&#xff0c;以便更方便地控制事件的行为。以下是常用的 Vue 事件修饰符&#xff1a; .stop .stop 修饰符用于阻止事件冒泡&#xff0c;即停止事件在父元素之间的传播。 示例…

【C++】:STL——标准模板库介绍 || string类

&#x1f4da;1.什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且 是一个包罗数据结构与算法的软件框架 &#x1f4da;2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…

MySQL - 左连接、右连接、内连接、完全外连接、交叉连接 一对多、多对一、多对多 联合连接

前言 做服务端接口开发时&#xff0c;经常对数据库进行查询操作&#xff0c;了解并掌握数据库的左连接、右连接、内连接、完全外连接、交叉连接&#xff0c;一对多、多对一、多对多&#xff0c;联合连接等概念和使用就很重要了。 首先给出两个数据表&#xff0c;分别为学生表…