mysql-不走索引的情况

1、where字句的查询条件里面有不等于号where column!=
2、where字句的查询条件里面使用了函数
3、在join操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了索引也不会使用
4、likeregexp只有在搜索模板的第一个字符不是通配符的情况下才能使用索引,像like "%abc%like "%abc"不走索引
5、order by,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引
6、某个数据列里包含着许多重复的值,例如性别:“男/女”
7、如果条件中有 or(并且其中有or的条件是不带索引的),即使其中有条件带索引也不会使用。

要想使用or,又想要索引生效,只能将or条件中的每个列都加上索引

8、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
9、如果优化器认为使用全表扫描要比使用索引快,则不使用索引

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 在传统的系统应用程序中我们通常都会和[数据库]建立连接进行数据的读写操作,为了减少连接数据库造成的资源消耗于...
    老鼠AI大米_Java全栈阅读 4,266评论 0 1
  • 没有查询条件,或者查询条件没有建立索引 select * from tab;全表扫描 在业务数据库中,特别是数据量...
    蔺蔺蔺赫赫阅读 3,449评论 0 0
  • 索引,但用不上的情况: 在数据库表中,使用索引可以提高查询速度。但是索引并不是对所有的查询操作都会生效的。比如以下...
    米兔妮妮阅读 5,005评论 0 1
  • 1 锁引介绍 官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能...
    IT雪山阅读 3,887评论 0 1
  • 使用索引时,有一些技巧:1.索引不会包含有NULL的列只要列中包含有NULL值,都将不会被包含在索引中,复合索引中...
    逗比的一生阅读 1,800评论 0 0