MongoDB 索引知识整理

简介: MongoDB索引提升查询效率,避免全表扫描,支持多种类型:单字段、复合、地理空间、文本及哈希索引,优化数据检索与排序操作。

4.1 概述
作用:支持高效执行查询。若无索引,MongoDB 需进行全集合扫描(遍历每个文档),效率极低,尤其在处理大量数据时,可能导致查询耗时长达几十秒甚至几分钟,严重影响网站性能;有合适索引时,可限制需检查的文档数量。
本质:特殊数据结构,以易于遍历的形式存储集合数据集的一小部分,存储特定字段或一组字段的值并按字段值排序。
优势:索引项的排序支持有效的相等匹配、基于范围的查询操作,还可利用索引排序返回排序结果。
数据结构:使用 B 树(确切为 B-Tree,区别于 MySQL 的 B+Tree)。
官网文档:https://docs.mongodb.com/manual/indexes/
4.2 索引的类型
4.2.1 单字段索引
定义:在文档的单个字段上创建的用户定义升序 / 降序索引。
特点:对于单个字段索引和排序操作,索引键的排序顺序(升序或降序)不重要,因 MongoDB 可在任何方向遍历索引。
4.2.2 复合索引
定义:支持在多个字段上创建的用户定义索引。
特点:字段顺序至关重要。例如,复合索引{ userid: 1, score: -1 }先按userid正序排序,再在每个userid值内按score倒序排序。
4.2.3 其他索引
地理空间索引(Geospatial Index):支持对地理空间坐标数据的有效查询,提供两种类型:
二维索引:返回结果时使用平面几何。
二维球面索引:返回结果时使用球面几何。
文本索引(Text Indexes):支持在集合中搜索字符串内容。不存储特定于语言的停止词(如 “the”“a”“or”),会将集合中的词作为词干,仅存储根词。
哈希索引(Hashed Indexes):支持基于散列的分片,对字段值的散列进行索引。值分布更随机,但仅支持相等匹配,不支持基于范围的查询。

相关文章
|
存储 运维 监控
什么是 SRE?一文详解 SRE 运维体系
什么是 SRE?一文详解 SRE 运维体系
4413 1
|
SQL 消息中间件 存储
PostgreSQL CDC的最佳实践
PostgreSQL CDC的最佳实践
PostgreSQL CDC的最佳实践
|
Docker 容器 网络协议
|
4月前
|
算法 PyTorch 算法框架/工具
从零开始用自定义 Triton 内核编写 FlashAttention-2
本文实现了FlashAttention-2前向传播:通过分块Q/K/V、流式处理K/V避免物化大矩阵,采用在线softmax保障数值稳定,支持因果/非因果模式,并用Triton autotuner调优、PyTorch验证。核心是IO感知设计,将内存复杂度从O(N²)降至O(N),显著提升长序列吞吐量。
618 5
从零开始用自定义 Triton 内核编写 FlashAttention-2
|
Python
Python中如何按行遍历DataFrame
听世界的意见,保留自己的态度。
3156 0
|
监控 Linux 调度
Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来
Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来
312 1
Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来
|
6月前
|
SQL 存储 关系型数据库
MySQL 高频面试题
本课程深度解析阿里MySQL高频面试题,涵盖底层原理、索引优化、性能调优与故障排查四大核心模块。结合阿里实战场景,精讲MVCC、B+树、事务ACID、死锁处理、慢SQL定位、分库分表等关键技术点,提供可落地的优化方案与标准答案,助力掌握“原理+实战”双能力,精准应对高并发、大数据量下的数据库挑战,适合中高级开发者冲击大厂offer。
|
9月前
|
存储 监控 NoSQL
MongoDB索引知识全解析
MongoDB索引是提升查询性能的核心工具,通过构建B树数据结构,将全集合扫描(O(n))优化为索引查找(O(log n)),显著提高响应速度。本文从索引类型、设计原则、性能调优及管理实践展开解析,助力数据库高效运行。
476 1
|
SQL NoSQL MongoDB
MongoDB 索引类型介绍
MongoDB 索引类型介绍
606 3
|
SQL 数据库 索引
Pandas之DataFrame,快速入门,迅速掌握(三)
Pandas之DataFrame,快速入门,迅速掌握(三)
415 0