欢迎大家来到IT世界,在知识的湖畔探索吧!
类型不匹配
这种情况比较常见而且不易被发现,比如当我们定义了一个 varchar类型的字段
并且设置成索引
当执行select 语句的时候,where 后面的条件是数字类型
虽然能够执行成功,但底层是Mysql 进行了隐式转换,索引就失效了。我们改成字符串索引就可以生效了。
对索引使用函数
当我们想查询手机号码前三位是 133的用户,执行下面是sql
但当我们执行explain的时候会发现,并没有使用索引。
这种情况我们可以用like 改造我们的sql
通过前缀匹配,我们就可以正确地使用索引了。
左模糊匹配
那是不是用上like 就可以使用上索引呢,没那么简单,我们看下面的sql
上面的sql 使用了左模糊匹配,通过explain可以看到这个sql 也没有使用索引。由于索引在mysql 里面是通过B+树组织的,只能支持右模糊匹配。
联合索引顺序匹配
这种主要是在联合索引下才会出现,比如下面年龄和电话的组合索引
我们可以查询年龄为20岁的用户
但直接查电话号码,索引就失效了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/94709.html