试题
考点

数据库-数据库基础-索引相关

面5笔5

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

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

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

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

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

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

正确答案是 D

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

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

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

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

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

文章链接

评论
暂无评论

加载更多