M14-MongoDB索引原理及使用

存储引擎

network-Query Pan-Storage KV Interface-WiredTiger

核心数据结构B-Tree

在这里插入图片描述

MongoDB数据结构组织

在这里插入图片描述

索引原理总结

在这里插入图片描述

MongoDB索引类型

在这里插入图片描述

单列索引

在这里插入图片描述

Covered 查找的数据刚好是索引数值不需要其他字段

在这里插入图片描述
Projection中不要的字段要屏蔽掉
score:1 返回score
_id:0 不返回 _id

联合索引

在这里插入图片描述
联合索引:{userid:1,score:-1} index userid升序,score降序
在这里插入图片描述

索引属性—唯一索引与TTL索引

在这里插入图片描述

执行计划原理

执行计划和索引息息相关。
如果没有索引,就不需要执行计划,全表扫描就可以了。

查询计划-走索引

在这里插入图片描述

查询计划-不走索引

在这里插入图片描述

查询计划

多条查询计划并行发起,优先返回100条或者先完成的计划完胜
但是并非100%精准,存在误判的可能性
在这里插入图片描述

获得查询计划

db.exam.find({userid:“abc”,school:“aa”}).explain(true)

winningPlan

在这里插入图片描述

STAGE种类

在这里插入图片描述
COLLSCAN 全表扫描,和SORT格外关注,可能使查询效率变低
IXSCAN 走索引

executionStats

在这里插入图片描述
当几个值相差很大,说明查询并不是最优的,做很多无效的浪费的,需要关注

技巧

索引不是越多越好,删除无效索引
永远记得后台建索引(background:true)
可以使用hint,但不建议使用Index filters
DB响应慢:慢查询-看监控-抓现场-分析业务-确定是否建索引
看文档,勤动手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值