最左前缀匹配原则
📅 2026/8/2 4:48:36
👁️ 次浏览
[[MySQL]] 最左前缀匹配原则详解1. 什么是最左前缀匹配原则最左前缀匹配原则是 MySQL联合索引组合索引的重要规则。简单来说当使用联合索引查询时MySQL 会从索引的最左列开始匹配不能跳过中间列。例如创建联合索引CREATEINDEXidx_userONuser(name,age,city);索引顺序name → age → cityMySQL 会按照这个顺序组织索引数据。因此可以匹配name name age name age city不能直接匹配age city age city2. 联合索引为什么遵循最左匹配MySQL InnoDB 的索引底层结构是BTree。假设存在联合索引(name,age,city)索引排序规则第一层按照 name 排序name 相同按照 age 排序age 相同按照 city 排序例如张三 18 北京 张三 20 上海 李四 18 广州 李四 25 深圳可以快速找到张三 张三 20岁 张三 20岁 上海但是无法直接找到18岁 北京因为索引首先按照 name 排序。3. 最左匹配示例创建索引CREATEINDEXidx_userONuser(name,age,city);3.1 完全匹配索引SQLSELECT*FROMuserWHEREname张三ANDage20ANDcity北京;匹配顺序name → age → city可以使用完整联合索引。3.2 只匹配第一个字段SQLSELECT*FROMuserWHEREname张三;匹配name符合最左原则。可以使用索引。3.3 匹配前两个字段SQLSELECT*FROMuserWHEREname张三ANDage20;匹配name → age可以使用索引。4. 哪些情况无法充分使用索引4.1 跳过最左字段SQLSELECT*FROMuserWHEREage20;索引(name, age, city)查询age但是缺少nameMySQL 无法快速定位索引范围。通常无法使用该联合索引。4.2 跳过中间字段SQLSELECT*FROMuserWHEREname张三ANDcity北京;索引(name, age, city)匹配name跳过age再查询city结果MySQL 可以使用name这一部分索引。但是city无法继续利用索引定位。原因联合索引必须按照name → age → city顺序匹配。5. 范围查询影响索引匹配这是面试中经常考的问题。索引(name,age,city)SQLSELECT*FROMuserWHEREname张三ANDage18ANDcity北京;执行过程先匹配name然后age 18由于 age 是范围查询 BETWEEN LIKE 前缀查询MySQL 后续无法继续精确匹配city所以name √ age √ city ×记忆范围查询之后索引匹配通常停止。6. LIKE 查询是否使用索引可以使用索引SELECT*FROMuserWHEREnameLIKE张%;原因因为知道开头张可以定位索引范围。无法使用索引SELECT*FROMuserWHEREnameLIKE%张;原因不知道开头字符。MySQL 无法确定搜索范围。通常会导致全表扫描。7. WHERE 条件顺序影响索引吗很多人认为WHEREage20ANDname张三不会走索引。实际上不会。MySQL 优化器会自动调整查询条件。例如索引(name,age)下面两个 SQLWHEREname张三ANDage20和WHEREage20ANDname张三最终都会按照name → age使用索引。真正影响索引的是是否满足最左匹配规则。8. 如何设计联合索引8.1 高频查询字段优先例如经常查询SELECT*FROMorderWHEREuser_id100ANDstatus1;可以建立INDEX(user_id,status)8.2 区分度高的字段优先例如字段gender只有男 女区分度较低。字段user_id通常唯一。区分度更高。8.3 不要创建过多索引索引越多优点查询更快缺点占用空间降低新增数据速度更新数据需要维护索引9. 面试总结Q什么是最左前缀匹配原则回答MySQL 使用联合索引时会按照索引字段从左到右匹配查询条件。如果缺少最左字段后续字段通常无法使用索引。Q联合索引(a,b,c)哪些可以使用可以a a,b a,b,c不能充分使用b c b,cQ为什么不能跳过中间字段因为 BTree 索引按照a → b → c排序。缺少 a 时无法确定 b 的查找范围。Q范围查询为什么影响后面的字段因为范围查询只能确定一个范围。例如age20之后的数据顺序无法继续精确定位。总结最左前缀匹配原则记住三句话联合索引从最左字段开始匹配不能跳过中间字段遇到范围查询后续字段通常无法继续使用索引口诀从左往右匹配不能跳过遇到范围就停止。
GIME甘肃煤博会:丝路枢纽,链接西北能源新未来,
GIME2027西北(兰州)煤炭与煤化工业展览会
Northwest Coal and Coal Chemical Industry Exhibition
举办时间:2027年5月14-16日
使用展馆:兰州丝路…
📅 2026/8/2 4:48:36
1. 项目概述:AI指令操作浏览器的技术实现Browser Use是一个将自然语言指令转化为浏览器操作的技术方案。它的核心价值在于通过AI理解用户意图,自动完成网页浏览、表单填写、数据采集等重复性操作。我在实际测试中发现,这套系统能有效减少人工…
📅 2026/8/2 4:47:36
连吃两周摸透口味区别,4家看得见食材的火锅实测分享连续两周走访4个主打看得见食材的火锅品牌门店,从锅底工艺、菜品鲜度、溯源透明度三个维度对比,能清晰感知不同品牌在食材呈现上的差异化特色,其中遇南三的手工炒料与明档食材展…
📅 2026/8/2 4:47:36
Figma 使用 figma-developer-mcp 搭建本地 MCP,以及 Workbuddy 配置 本地 Figma MCP 摘要:本文介绍如何通过社区维护的 figma-developer-mcp 项目,在本地搭建 Figma MCP 服务,并配置到 Workbuddy 中,实现设计稿与 AI 辅…
📅 2026/8/2 5:39:08
背单词小程序「优词记 Pro」技术复盘第六篇。前面几篇偏设计取舍,今天是纯粹的踩坑记录——发布前夜,生产构建的产物里导航栏和 tabbar 直接消失了,全局样式错乱,而开发预览一切正常。排查过程有点意思,写出来给同样用…
📅 2026/8/2 5:39:08
1. 项目概述:当复杂组织遇上AI,一场管理学的范式革命最近几年,我身边不少做企业战略、组织发展的朋友,都陷入了一种“知识焦虑”。传统的管理理论,无论是经典的科层制、流程再造,还是近些年流行的OKR、阿米…
📅 2026/8/2 5:39:08
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…
📅 2026/8/2 5:39:08
3分钟搞定全网歌曲歌词:163MusicLyrics免费歌词下载工具终极指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics
还在为音乐播放器里空白的歌词栏而烦恼吗&am…
📅 2026/8/2 5:39:08
1. 项目概述:UnityResolve.hpp 是什么?如果你在逆向分析或安全研究领域,尤其是针对使用Unity引擎开发的游戏或应用时,经常需要与游戏内部的C#脚本和托管对象打交道,那么你很可能听说过或者正在寻找一种更优雅的解决方案…
📅 2026/8/2 5:38:08
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/2 1:22:12
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/2 0:02:59
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/2 1:22:12