mongodb性能调优 1.从慢查询分析索引 2.掌握索引最左匹配原则!!!

案例:

top one: 所以不合适,使用最左匹配原则。

top three: 值是唯一的,但是没有索引。

解决后:

总结:


最左匹配:

理解为啥会有最左匹配原则:

a字段是有序的:1,1,2,3,4

b: 1,2,2,5,1

会先对a字段排序,然后再对b字段排序,那么单纯的: b=2进行查询,是没办法用到索引的。

理解最左匹配:假如有(a,b) 这么一个联合索引的话,查询语句一定要有a字段,否则会进行全表扫描 (但是8.0中有索引跳跃扫描走了索引,但是如果a字段很多,那效率就很低了!!!)。


通过递归生成测试数据

col1和col2都有,则说明用到了索引,并且key_len为10

只有字段col1也可以走索引, key_len为5

只有col2,则没有走索引,走了全表扫描!!!

理解原因:也就是先按照col1排序,但是col2的话,是没有关联的,只能全表扫描

可以看出col1是等值, col2是范围 那也可以用到索引,因为:先找到col1的,col2的往后找就行。

改为 > 100时,没有走!!! 因为绝大多数可能都大于100,所以没走,所以走索引再回表还是直接全表扫描呢?

大一点就走了,说明: 大宇1W的,可能也就10条,优化器认为:走索引好。

左边是确定的,则走了索引。

右边是确定的,则不走。

也就是:遵循最左索引的规则上,减少索引数量。

也就是(col1, col2) + (col2) 这样子建2个索引。

相关推荐
.Bryce.1 小时前
你了解 Blackboard(黑板系统)吗?听说过基于黑板系统实现的智能体吗?
java·网络·gpt·php·agent·codex·黑板系统
猿究院_夏燊8 小时前
Spring Bean 生命周期
java·后端·spring
Wang's Blog8 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
信誓旦旦的程序猿8 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河9 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
Jlzn88889 小时前
华东电芯分选通道数怎么配才不堵线
java·人工智能·架构·自动化·制造
香吧香9 小时前
GRPC连接机制---长连接分析
java·网络与传输协议
我是人✓9 小时前
SpringBoot项目的五种创建方式
java·spring boot·后端
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 阿里云 OSS 入门案例:从创建 Bucket 到上传拿到可访问 URL
java·阿里云·交友
裕晟资质规划11 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全