索引失效的几种情况(总结)

2020-06-01 14:32:20 java常见问答 10408

因为我们也清楚,索引确实不会时时刻刻都有效,那么我们是否也清楚为什么索引会失效呢?有兴趣了解的小伙伴们可以跟小编一起了看看,索引失效的几种情况。

如果说条件中有or的话,即使其中已经有条件带索引了也不会使用:

索引

注:如果要想使用or,又想让索引生效的话,就只能将or条件中的每个列都加上索引了;对于多列索引来说,不是使用的第一部分,那就不会使用索引;like查询是以%开头的:

索引

如果列类型是字符串的话,那就要在条件里面将数据使用引号引用起来,否则就不使用索引:

索引

如果mysql其实使用全表扫描要比使用索引更快,也要不使用索引:

除此之外,再来查看索引的使用情况:

show status like ‘Handler_read%';

可以注意到:

handler_read_key:这个值是越高越好的,因为越高表示使用索引查询到的次数了。

handler_read_rnd_next:这个值越高,就说明了查询低效。

好了,以上就是本篇文章的所有内容了,还想了解更多java常见问答信息,记得关注本站消息获取更多内容。

推荐阅读:

数据库索引怎么建立呢?数据库索引有何作用?

数据库索引原理有哪些?简述

数据库索引的作用是什么?为什么要创建索引?