Mysql索引及最左原则 explain
说明一点,大家都知道Mysql有一个联合索引最左原则,但是经过测试发现。
有主键,的联合主键没有遵循最左原则:
可能会走到联合索引的,为什么说可能,MYSQL的执行计划和查询的实际执行过程并不完全吻合,比如你数据库数据量很少,可能直接全量遍历速度更快,就不走索引了。
有id主键,不走联合索引
只有索引字段则走索引
主键联合索引,走索引
唯一联合索引也会走索引
下面的解释,我不知道是不是应验了上面的测试:
可能会走到联合索引的,为什么说可能,MYSQL的执行计划和查询的实际执行过程并不完全吻合,比如你数据库数据量很少,可能直接全量遍历速度更快,就不走索引了。
SQL性能优化的目标:至少要达到 range 级别,要求是ref级别,如果可以是const最好。说明:
explain结果
•1)const 单表中最多只有一个匹配行(主键或者唯一索引),在优化阶段即可读取到数据。
•2)ref 指的是使用普通的索引,然后进行回表操作。(normal index)
•3)range 对索引进行范围检索。反例:explain表的结果,type=index,索引物理文件全扫描,速度非常慢,这个index级别比较range还低,与全表扫描是小巫见大巫。
•4)index 遍历普通索引全部记录 表示用到了索引树 但是需要全树遍历
•5)all 全表扫描
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)