发布时间:2026/8/2 4:48:43
最左前缀匹配原则 [[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之后的数据顺序无法继续精确定位。总结最左前缀匹配原则记住三句话联合索引从最左字段开始匹配不能跳过中间字段遇到范围查询后续字段通常无法继续使用索引口诀从左往右匹配不能跳过遇到范围就停止。

相关新闻

2026/8/2 4:48:43

GIME2027西北(兰州)煤炭与煤化工业展览会,5月举办

GIME甘肃煤博会:丝路枢纽,链接西北能源新未来, GIME2027西北(兰州)煤炭与煤化工业展览会 Northwest Coal and Coal Chemical Industry Exhibition 举办时间:2027年5月14-16日 使用展馆:兰州丝路…

2026/8/2 4:43:43

scikit-learn安装全攻略:从环境配置到避坑指南

1. 项目概述:从一次恼人的安装错误说起如果你刚开始接触Python机器学习,那么scikit-learn(简称sklearn)几乎是你绕不开的第一个重量级库。它封装了从数据预处理、特征工程到模型训练、评估的完整流程,API设计优雅统一&…

2026/8/2 4:43:43

微信小程序web-view业务域名配置与深度排错指南

1. 问题现场&#xff1a;当web-view提示“不支持打开非业务域名”时 如果你正在开发微信小程序&#xff0c;并且在小程序里用到了 <web-view> 组件来加载一个H5页面&#xff0c;那么你大概率会遇到过这个弹窗&#xff1a;“不支持打开非业务域名”。这个提示一出来&am…

2026/8/2 6:03:46

混沌工程在主动安全防御中的应用:从被动防护到非对称反制

1. 项目概述&#xff1a;一场非对称防御的思维实验最近在安全圈里&#xff0c;一个非常有意思的讨论点被提了出来&#xff1a;“当黑客勒索遇到混沌工程&#xff1a;我们如何反向DDoS攻击者”。这听起来像是一个天马行空的战术构想&#xff0c;但它背后折射出的&#xff0c;是当…

2026/8/2 6:03:46

Pokemon-Go-Rocket-API:逆向工程与游戏自动化技术深度解析

1. 项目概述与核心价值如果你是一个《Pokmon GO》的资深玩家&#xff0c;或者对这款游戏的底层技术架构充满好奇&#xff0c;那么你很可能听说过“Rocket-API”这个名字。它不是一个官方工具&#xff0c;也不是一个简单的辅助应用&#xff0c;而是一个在技术社区中流传甚广、功…

2026/8/2 6:03:46

OpenCV图像边界填充:copyMakeBorder函数详解与应用实践

1. 项目概述&#xff1a;为什么我们需要给图像加边框&#xff1f;在图像处理的实际项目中&#xff0c;我们经常会遇到一个看似简单却至关重要的需求&#xff1a;调整图像的尺寸或为其添加一个外框。比如&#xff0c;你想把一张小图无缝嵌入到一个固定尺寸的画布中&#xff0c;或…

2026/8/2 6:03:46

谷歌开源Groundsource:用Gemini大模型从新闻中构建全球洪水数据集

1. 项目概述&#xff1a;当大模型遇见地球科学最近在数据科学和灾害预警的交叉领域&#xff0c;有个开源项目让我眼前一亮。它叫Groundsource&#xff0c;是谷歌开源的一个洪水数据集。但别被“数据集”这个词给骗了&#xff0c;它可不是你印象里那种简单的CSV表格。这个项目的…

2026/8/2 6:03:46

Burp Suite宏实战:自动化破解动态Token登录防护

1. 项目概述与核心痛点在Web应用安全测试&#xff0c;尤其是渗透测试和CTF比赛中&#xff0c;我们经常会遇到一种让人头疼的防御机制&#xff1a;动态Token登录页。这种页面的登录表单里&#xff0c;除了常规的用户名和密码字段&#xff0c;还会包含一个由服务器动态生成的、每…

2026/8/2 5:58:46

[具身智能-702]:ROSMASTER-M1 的 WIFI 是终端,还是热点?

ROSMASTER-M1&#xff08;亚博智能&#xff0c;搭载 RDK X5 版本&#xff09;WiFi 模式说明术语先厘清&#xff1a;AP 模式 热点&#xff08;发射 WiFi&#xff0c;别人连小车&#xff09;STA 模式 无线终端&#xff08;小车去连接路由器 WiFi&#xff09;1、出厂默认状态✅ …

2026/8/2 0:02:18

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制&#xff1a;SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰&#xff1f;想为心爱的游戏截图&#xff0c;却发现游戏不支持自定义分辨率…

2026/8/2 0:02:18

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制&#xff1a;SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰&#xff1f;想为心爱的游戏截图&#xff0c;却发现游戏不支持自定义分辨率…

2026/8/2 1:52:02

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/1 0:03:49

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/1 0:03:49

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版等核心场景&#xff0c;真正帮你高效搞定论文难题。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首…