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

看了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主一键三连

你可能感兴趣的:(数据库,sql,mysql)