校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据库 > 索引相关
题目

下列哪项不是Mysql索引失效场景?

A.索引字段使用了函数,比如SUBSTR(id_no,1,3)

B.错误的Like使用,比如占位符出现在首部,导致无法走索引

C.类型隐式转换问题,字段类型为varchar,但在SQL语句中使用了int类型,导致全表扫描

D.使用OR操作,因为OR是或的关系,所以只要有一个字段有索引即可

解答

正确答案是 D

答案是D
D 在使用or关键字时,切记两个条件都要添加索引,否则会导致索引失效。而且如果or两边同时使用“>”和“<”,则索引也会失效

A 题目中只列举了SUBSTR函数,像CONCAT等类似的函数,也都会出现类似的情况。
,获得数据之后再进行截取、计算,导致索引索引失效。同时,还伴随着性能问题

B 针对like的使用非常频繁,但使用不当往往会导致不走索引。
由于占位符出现在首部,导致无法走索引。这种情况不做索引的原因很容易理解,索引本身就相当于目录,从左到右逐个排序。而条件的左侧使用了占位符,导致无法按照正常的目录进行匹配,导致索引失效就很正常了

C 出现索引失效的原因是:varchar和int是两个种不同的类型。参数类型与字段类型不匹配,导致类型发生了隐式转换,索引失效。

更多的失效场景,可以观看文章:https://xiaozhao.vip/article/detail/5891

C 0条回复 评论

帖子还没人回复快来抢沙发