| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MongoDB 索引的使用 -> 正文阅读 |
|
[大数据]MongoDB 索引的使用 |
MongoDB 索引的使用1 索引概述索引支持在 MongoDB 中高效地执行查询,避免 MongoDB 执行全集合扫描来选择与查询语句匹配的文档,这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询要花费几十秒甚至几分钟,严重影响网站的整体性能。如果查询存在适当的索引,MongoDB 可以使用该索引限制必须检查的文档数。 索引是特殊的数据结构,以易于遍历的形式存储集合数据集的一小部分,索引存储特定字段或一组字段的值,按字段值排序,索引项的排序支持有效的相等匹配和基于范围的查询操作,MongoDB 可以使用索引中的排序返回排序结果,MongoDB 索引使用 B 树数据结构。 2. 索引的类型2.1 单字段索引MongoDB 支持在文档的单个字段上创建自定义的升序/降序索引,称为单字段索引。对于单个字段索引和排序操作,索引键的排序顺序并不重要,因为 MongoDB 可以在任何方向上遍历索引。 2.2 复合索引MongoDB 还支持多个字段的用户定义索引,即复合索引。复合索引中列出的字段顺序具有重要意义,例如,如果复合索引由 2.3 其他索引(1) 地理空间索引:为了支持对地理空间坐标数据的有效查询,MongoDB 提供了两种特殊的索引,返回结果时使用平面几何的二维和返回结果时使用球面几何的三维球面索引。 (2) 文本索引:MongoDB 提供了一种文本索引类型,支持在集合中搜索字符串内容,这些文本索引不存储特定于语言的停止词,而将集合的词作为词干,只存储词根。 (3) 哈希索引:为了支持基于散列的分片,MongoDB 提供了散列索引类型,它对字段值的散列进行索引,这些索引在其范围内的值分布更加随机,但只支持相等匹配,不支持基于范围的查询。 3. 索引的管理操作3.1 查看索引语法格式如下:
例如,查看 comment 集合中所有的索引情况:
3.2 创建索引语法格式如下:
参数:
options 列表:
(1) 单字段索引,对
(2) 复合索引,对
3.3 删除索引语法格式如下:
参数:
例如,删除 comment 集合中
例如,删除 comment 集合中的所有索引(除 _id 索引外):
4. 索引的使用4.1 执行计划分析查询性能通常使用执行计划来查看查询的情况,如查询耗费的时间、是否基于索引查询等。 语法格式如下:
查看根据
其中, 4.2 覆盖的查询当查询条件和查询的投影仅包含索引字段时,MongoDB 将直接从索引返回结果,而不扫描任何文档或将文档带入内存,这些覆盖的查询可以非常有效。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:57:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |