美文网首页
MySQL中不会命中索引的情况

MySQL中不会命中索引的情况

作者: 科威舟VS求利 | 来源:发表于2020-06-06 11:20 被阅读0次

表与索引

我们简单建了一张表,如下:


image.png

我们建立了两个索引,分别为主键索引id和普通索引product_id


image.png

是否命中索引

where 条件中带 or会不会命中索引?

如果我们的where条件中存在or,及时其中带索引,也不会命中索引。这也是为什么尽量使用or的原因
我们通过主键索引查询,可以看见命中了索引:


image.png

而我们在where 条件后面加上or之后,就不会命中索引了:


image.png
如果我们想用or又想让它命中索引,那么只能将or条件中的每一列都加上索引了:
image.png
所以,如果or中有一个条件没有索引的时候,还是建议使用union操作,将多个查询语句拼装在一起:

like查询中会不会命中索引?

image.png

可以看到如果用like查询的话,%在右边会命中索引的,而%在左边则不会。当然这也不是绝对的,当我们使用索引列进行查询的时候,就都会命中索引了:


image.png

负向查询条件会不会用到索引?

NOT IN,NOT LIKE,NOT EXTSTS都不会命中索引

相关文章

  • MySQL中不会命中索引的情况

    表与索引 我们简单建了一张表,如下: 我们建立了两个索引,分别为主键索引id和普通索引product_id 是否命...

  • mysql学习-20180117

    [需要更新] mysql学习 mysql 5.6 官方版本说加索引时,不会锁表,但是表加索引时,依然会存在2种情况...

  • MySQL中索引失效的情况

    1.被索引字段发生了隐式类型转换 2.被索引字段使用了表达式计算 3.被索引字段使用了函数 4.被索引字段,不是联...

  • 面试总结

    mysql 索引的类型、索引的底层结构、索引失效的情况聚簇索引和非聚簇索引mysql的隔离级别, innerdb默...

  • PHP题目分享与答案(2)

    2:索引分为哪些?如何创建索引?索引如何优化?A,B,C联合索引如何才能命中索引? MySQL索引分为主键索引,唯...

  • mysql索引常见注意事项

    简述 记录一些mysql索引在设计使用时的事项 内容 前导模糊查询无法命中索引 数据类型隐式转换无法命中索引 复合...

  • 数据库

    • MySQL 索引使用的注意事项 MySQL 索引使用的注意事项 索引不会包含有NULL值的列使用短索引...

  • MySQL组合索引不被命中使用的情况

    创建组合索引:一个表中可以有多个,用多个列组合构建的索引,这多个列中的值不允许有空值。 查询条件中包含索引的前缀部...

  • MySQL索引背后的数据结构及算法原理

    参考来源 mysql索引分析 MySQL索引背后的数据结构及算法原理 MySQL中EXPLAIN命令详解 索引连接...

  • 覆盖索引 - 非官方 MySQL 8.0 优化指南 - 学习笔记

    覆盖索引是一种特殊的复合索引,所有查询的列都包括在索引中。这种情况下,MySQL 能直接从索引返回数据,不用访问行...

网友评论

      本文标题:MySQL中不会命中索引的情况

      本文链接:https://www.haomeiwen.com/subject/dtqbzhtx.html