因为我们也清楚,索引确实不会时时刻刻都有效,那么我们是否也清楚为什么索引会失效呢?有兴趣了解的小伙伴们可以跟小编一起了看看,索引失效的几种情况。
如果说条件中有or的话,即使其中已经有条件带索引了也不会使用:
注:如果要想使用or,又想让索引生效的话,就只能将or条件中的每个列都加上索引了;对于多列索引来说,不是使用的第一部分,那就不会使用索引;like查询是以%开头的:
如果列类型是字符串的话,那就要在条件里面将数据使用引号引用起来,否则就不使用索引:
如果mysql其实使用全表扫描要比使用索引更快,也要不使用索引:
除此之外,再来查看索引的使用情况:
show status like ‘Handler_read%';
可以注意到:
handler_read_key:这个值是越高越好的,因为越高表示使用索引查询到的次数了。
handler_read_rnd_next:这个值越高,就说明了查询低效。
好了,以上就是本篇文章的所有内容了,还想了解更多java常见问答信息,记得关注本站消息获取更多内容。
推荐阅读: