mysql面试高频问题---什么情况下索引会失效❎
1.mysql面试高频问题---慢查询如何定位和优化⬆️2.mysql面试高频问题---如何定位慢查询⌚️3.mysql面试高频问题---索引😄4.mysql面试高频问题---聚簇索引与非聚簇索引😊5.mysql面试高频问题---覆盖索引🧻6.mysql面试高频问题---索引创建的原则📖
7.mysql面试高频问题---什么情况下索引会失效❎
8.mysql面试高频问题---sql优化的经验😮9.mysql面试高频问题---事务的特性😅10.mysql面试高频问题---并发事务📚11.mysql面试高频问题---undo log和redo log的区别🙉12.mysql面试高频问题---事务-MVCC多版本并发控制(难)🚬13.mysql面试高频问题---mysql主从同步原理☀️14.mysql面试高频问题---mysql分库分表👿什么情况下索引会失效
1. 问题
索引失效的情况有很多,可以说一些自己遇到过的。
给tb_seller创建联合索引,字段顺序: name,status,address
那如何判断索引是否失效了呢?执行计划explain
2. 什么情况下索引会失效
- 违反最左前缀法则
如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始,并且不跳过索引中的列。匹配最左前缀法则,走索引。
有效的情况如下图所示:
失效的情况如下图所示(违反最左前缀法则):
- 范围查询右边的列,不能使用索引。
根据前面的两个字段name , status查询是走索引的,但是最后一个条件address没有用到索引。
- 不要在索引列上进行运算操作,索引将失效。
- 字符串不加单引号,造成索引失效。
由于,在查询是,没有对字符串加单引号,MySQL的查询优化器,会自动的进行类型转换,造成索引失效。
- 以%开头的Like模糊查询,索引失效。如果仅仅是尾部模糊匹配,索引不会失效。如果是头部模糊匹配,索引失效。
3. 总结
4. 问答
本文来自博客园,作者:xiaolifc,转载请注明原文链接:https://www.cnblogs.com/xiaolibiji/p/18027753
合集:
mysql面试题
分类:
八股文 / mysql面试题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通