索引的使用 执行计划 | 学习笔记

简介: 快速学习 索引的使用 执行计划

开发者学堂课程【MongoDB精讲课程(上):索引的使用 执行计划学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/726/detail/12963


索引的使用 执行计划


内容介绍

一、执行计划

 

一、执行计划

分析查询性能( Analyze Query Performance )通常使用执行计划(解释计划、Explain Plan )来查看查询的情况,如查询耗费的时间、是否基于索引查询等。

通常了解建立的索引是否有效、效果如何,需要通过执行计划查看。

语法:

db .collection. find ( query , options ). explain ( options )

/ options 一般情况下使用默认即可。

例如:

查询 userid:”1003” 是否用到索引

db.comment.find({userid:1003}).explain()

此时返回的不是数据,而是执行计划返回的信息。如 queryPlanner 查询的信息,包括查询语句、计划的版本等。重点在于 winningPlan ,即赢计划, COLL 代表 collection,也就是集合, SCAN 是扫描,现在用到的是集合扫描,也就是代表现在并没有用到索引,目前是全局扫描。这里可以用 compass 来看更明显,找到 Explain Plan ,写一个查询userid ,执行计划后发现也没有用到索引。此时加上索引:

db.comment.createIndex({userid:1})

image.png

winningPlan 变为 FETCH ,不再是全局扫描。通过 IXSCAN 查询索引的集合,再通过 FETCH 进行查询,再次使用索引查询时就不用通过全集合扫描,而用的是索引。

image.png

如果数据较大,索引加后面的毫秒可以了解查询的速度是否提升。

相关文章
|
消息中间件 Kubernetes NoSQL
Linux时间校准(ntpdate及NTP客户端代码校准示例)
Linux时间校准(ntpdate及NTP客户端代码校准示例)
|
Shell
xhost: unable to open display ":0.0"
-bash: xhost: 未找到命令 原因是因未没有安装相关的包(其他类似command not found命令没有可以用这种方式解决) yum whatprovides "*/xhost" 安装对应版本
2230 0
|
8月前
|
存储 机器学习/深度学习 数据可视化
结合多模态RAG和异步调用实现大模型内容
文章探讨了如何利用多模态大模型和工程优化手段提升物流理赔业务效率。核心方案包括:通过多模态RAG技术实现图片查重,结合异步调用方法优化货损识别功能。
499 36
结合多模态RAG和异步调用实现大模型内容
|
监控 NoSQL MongoDB
mongodb查询100万数据如何查询快速
综上,提高MongoDB百万级数据的查询性能需要综合多项技术,并在实际应用中不断调优和实践。理解数据的特征,合理设计索引,优化查询语句,在数据访问、管理上遵循最佳的实践,这样才能有效地管理和查询大规模的数据集合。
772 1
|
Linux 开发工具 数据安全/隐私保护
CentOS7报错:“xxx is not in the sudoers file. This incident will be reported“解决方法
CentOS7报错:“xxx is not in the sudoers file. This incident will be reported“解决方法
1930 1
|
移动开发 前端开发 JavaScript
APP 开发技术如何进行选型 ?
APP 开发技术如何进行选型 ?
355 2
APP 开发技术如何进行选型 ?
|
JavaScript 前端开发
Vue如何监听键盘事件
Vue如何监听键盘事件
499 0
|
SQL NoSQL Shell
03 MongoDB文档的各种增加、更新、删除操作总结
文章总结了MongoDB中文档的增删改操作,包括插入文档、更新现有文档以及删除文档的具体方法和示例。
1017 0
|
存储 运维 NoSQL
轻松上手:逐步搭建你的高可用MongoDB集群(分片)
【8月更文挑战第13天】在数据激增的背景下,传统单机数据库难以胜任。MongoDB作为流行NoSQL数据库,采用分片技术实现水平扩展,有效处理海量数据。分片将数据分散存储,提高并发处理能力和容错性,是高可用架构基石。构建MongoDB集群需理解shard、config server和router三组件协同工作原理。通过具体实例演示集群搭建流程,包括各组件的启动及配置,确保数据高可用性和系统稳定性。合理规划与实践可构建高效稳定的MongoDB集群,满足业务需求并支持未来扩展。
785 0
|
NoSQL MongoDB
使用MongoTemplate 对 mongodb数据进行分组、排序、分页、连表查询
使用MongoTemplate 对 mongodb数据进行分组、排序、分页、连表查询