美文网首页
索引失效

索引失效

作者: MononokeHime | 来源:发表于2018-09-18 21:35 被阅读0次

索引失效

只要我们了解索引是如何使用B+这个数据结构创建,那么就更容易理解下面索引失效的原因。

对staff表的(name,age,pos)建立联合索引,索引有没有失效可以通过explain的ref字段查看

一、全值匹配我最爱,通常以下查询效果最优

select * from staff where name = 'July' age = 20 and pos = 'dev'

二、最佳左前缀匹配,下面只使用了name索引

select * from staff where name = 'July' and pos = 'dev'

以下是查找是进行全表扫描,效率最低

select * from staff where age = 20 and pos = 'dev'

三、不在索引列上做任何的操作(计算,函数,类型转换),会导致索引失效转为全表扫描

四、存储引擎不能使用索引中范围条件右边的列(范围之后全失效),以下pos列索引失效

select * from staff where name = 'July' and age > 20 and pos = 'dev'

五、尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *

select name, age, pos from staff where name = 'July' and age = 20 and pos = 'dev'

优于

select * from staff where name = 'July' and age = 20 and pos = 'dev'

六、mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描

七、字符串不加单引号会失效

八、is null,is not null也无法使用索引,索引无法存储null值

九、like查询以%开头会导致索引失效

练习

image.png

相关文章

  • mysql 高级调优

    索引失效

  • 索引的建立原则, 如何避免索引失效

    源自面试鸭 建立索引 如何避免索引失效 使用索引的缺点

  • oracle 使索引临时失效

    参考 使索引临时失效

  • MySQL索引

    MySQL索引 索引介绍 索引原理与分析 组合索引 索引失效分析 索引介绍 什么是索引索引:包括聚集索引、覆盖索引...

  • Mysql索引失效

    mysql 索引失效的原因有哪些?Mysql索引失效的原因 1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原...

  • mysql 索引失效分析

    索引并不会时时发生,有时就算是where查询字段中添加了索引,索引也会失效,下面我们来讲讲五种索引失效的场景。 1...

  • 索引优化1

    研究索引失效的问题 一、准备工作 1、建表 2、插入数据 3、创建索引 二、索引不失效的口诀 1、全职匹配我最爱 ...

  • 索引失效

    索引失效 只要我们了解索引是如何使用B+这个数据结构创建,那么就更容易理解下面索引失效的原因。 对staff表的(...

  • 索引失效

    在编写sql语句时,一般都会用到索引来提升sql性能,但是有些sql语句使用索引是不生效的。 is null 和...

  • 索引失效

    索引失败原因 where 条件的区分度太小导致索引失败 原因:基于cost成本分析(oracle因为走全表成本会...

网友评论

      本文标题:索引失效

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