索引失效的总结,只需要记住七个字即可

文章介绍了影响数据库索引效率的七个因素,包括模糊查询(如LIKE%xx)、数据类型不匹配、使用内置函数、查询null字段、数学运算、最左匹配原则的运用以及全表扫描的选择。了解这些可以帮助程序员优化查询并提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了b站一个up主老师的视频,用了七个字方便记忆索引失效的场景。

七个字就是: 模型数空运最快

模:指的就是模糊查询中,前模糊将会导致索引失效,like '%xx' 

型:也就是用来查询的数据类型,例如,例如数据库的字段是int类型,但是你查询的字段是Interge 类型,这种就会存在隐式转换,将导致索引失效

数:也就是内置函数,在where后面, 对查询的字段做函数操作,会导致索引失效,原因就是在内置函数完成之前,该字段的值是不确定的,索引在索引上树就找不到对应的节点位置

空:也就是为null 的字段,查询有null的字段将会导致不走索引

运:对查询的字段做加减乘除操作导致索引失效,跟内置函数的情况差不多,也就是值不确定

最:也就是最左匹配原则 ,对于多个字段的联合索引,如 index(a,b,c) 联合索引,则相当于创建了 a 单列索引,(a,b)联合索引,和(a,b,c)联合索引(但并不是建立了多个索引树)。mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。

快:如果优化器认为,全表扫描比使用索引更快,那么就会走全表扫描,而不会走索引

原视频路径,记住七个字搞定索引失效问题。#程序员 #程序员那么可爱 #程序员面试_哔哩哔哩_bilibili

如果大家觉得有用,可以去原视频给up主一键三连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值