规律
场景1(用到索引)
用到了索引情况, type = ref
场景2(没用到索引)
- 没有用到索引, 因为最左匹配原则
- 就是如果有key1, key2, key3, 需要(key1) (key1, key2) (key1, key2, key3), "带头大哥不能死, 中间兄弟不能断", 带头大哥没了就全表扫描, 中间断了, 后面就不会用扫描了
- 带头没了
场景3(索引部分失效)
- 中间断了 ref少了const key_len短了, 实际后面失效了
场景4(用了mysql函数 索引失效)
场景5(范围失效)
- 用到了排序, 范围后检索失效了, 因此type=range
场景6(覆盖索引 好)
场景7 != <> 无法使用索引
场景8 is null无法使用索引 (8.0优化了)
场景9 like
- 推荐like百分号写右边
失效了
没有失效
- 解决方案 覆盖索引
场景10 字符串没写单引号
- 避免类型转换