MongoDB 索引

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

索引

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

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

索引的作用

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

索引的副作用

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

使用场景

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

默认索引

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

索引名称

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

相关推荐
Databend6 小时前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
葫芦和十三15 小时前
图解 MongoDB 12|索引与查询优化地图:一条主线,三个判断轴
后端·mongodb·agent
葫芦和十三21 小时前
图解 MongoDB 11|慢查询排查闭环:从 Profile 到 explain 的分层路径
后端·mongodb·agent
葫芦和十三1 天前
图解 MongoDB 09|explain 再读:从 queryPlanner 到 executionStats
后端·mongodb·agent
葫芦和十三1 天前
图解 MongoDB 10|覆盖查询:让索引把活干完,根本不用回表
后端·mongodb·agent
ClouGence1 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将2 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils2 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波3 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
葫芦和十三3 天前
图解 MongoDB 08|ESR 原则:复合索引的字段顺序怎么定
后端·mongodb·agent