索引失效案例
全值匹配我最爱
当where条件的所有字段 都有 索引完全匹配时,效率最高
最左前缀规则(联合索引)
联合索引,在检索数据时从联合索引的最左侧开始匹配
主键插入顺序
计算/函数/类型转换(自动或手动) 导致索引失效
第1个SQL,要先进行计算,不会使用到索引
第2个SQL,等值匹配,使用索引
类型转换(自动或手动) 导致索引失效
name为varchar类型,第1个SQL会先将name进行类型转换,不会使用索引
范围条件右边的列索引失效(联合索引)
<, <=, >, >=, between...
联合索引的 范围条件字段 右侧字段 索引失效
由于where的classId是范围条件,仅使用 联合索引的 age+classId(key_len = 10)
不等于(!=或<>)索引失效
均索引失效
is null使用索引、is not null无法使用索引
like以%开头索引失效
第1个使用索引、第2个不使用索引
or前后存在非索引列,索引失效
数据库和表的 字符集 统一使用utf8mb4
标签:类型转换,SQL,MySQL,---,索引,联合,使用,失效,优化 From: https://www.cnblogs.com/anpeiyong/p/17541454.html