news 2026/6/17 0:30:27

3.3.4 最左匹配原则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3.3.4 最左匹配原则

最左匹配原则(最左前缀原则)是理解 MySQL联合索引(组合索引)工作方式的基石。它直接决定了你写的 SQL 是否能高效利用索引。简单来说:

对于联合索引(A, B, C),只有当查询条件包含最左列A或其连续前缀时,索引才能被用来进行快速查找。

为什么?这要从 B+ 树的组织方式讲起。


🧱 一、底层原理:联合索引的排序方式

假设在orders表上创建联合索引idx_abc (A, B, C),这是一个二级索引,InnoDB 会单独维护一棵 B+ 树。这棵树不是分别对 A、B、C 排序,而是(A, B, C)看做一个整体来进行排序

  1. 先按A排序
  2. A相同时,按B排序。
  3. B相同时,按C排序。

所以,这棵 B+ 树中的数据在逻辑上就像字典一样:先按 A 字母顺序,A 一样再按 B,B 一样再按 C。这就导致了:

  • 全局来看,A是绝对有序的,B是局部有序的,C更是局部有序的。
  • 跳过A直接查B:因为全局上B是无序的,索引无法帮你快速定位,只能从头到尾扫描整个索引(全索引扫描),效率极低。
  • 跳过AB直接查C:同理,C也是全局无序的,索引失效。

这就是最左前缀原则的本质。


🎯 二、命中与失效的场景详解

以下用联合索引idx_abc (A, B, C)为例。

✅ 1. 完全匹配所有列
WHEREA=1ANDB=2ANDC=3

所有列都是等值查询,完美匹配索引顺序,直接精确定

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 0:29:35

单例模式:5种手写实现、优缺点、生产选型

博客导语单例模式:全局仅有一个实例,重复实例化返回同一个对象。适用于日志工具、数据库连接池、全局配置类。整理面试全部5种手写方案,对比线程安全、实现难度。一、模块导入单例(生产首选,最简单)Python模…

作者头像 李华
网站建设 2026/6/17 0:26:45

AI搜索引擎引用逻辑的三个新变化:从相关性到可信度的结构性迁移

过去一年,主流AI搜索引擎(如Perplexity、豆包、Kimi)的引用策略发生了根本性转变:它们不再单纯偏好“最相关”的内容,而是转向“最可信”。这一变化直接导致大量精心优化关键词密度的SEO文章被边缘化。一、趋势信号&am…

作者头像 李华
网站建设 2026/6/17 0:25:56

CC-Switch下载、CC-Switch安装、配置教程(2026最新v3.16.1)

CC-Switch v3.16.1 完整下载、安装、配置教程(2026最新) 一、软件基础说明 CC-Switch 是MIT开源免费跨平台工具,用于统一管理 Claude Code、Codex、Gemini CLI、OpenCode 等AI编程工具的API密钥、多模型服务商切换、本地路由、用量统计、MC…

作者头像 李华
网站建设 2026/6/17 0:23:35

MCP23X08/17 GPIO扩展器深度解析:从寄存器配置到多设备实战

1. 项目概述:为什么我们需要GPIO扩展器?在嵌入式开发或者单片机项目中,我们经常会遇到一个头疼的问题:芯片的GPIO(通用输入输出)引脚不够用了。主控芯片的引脚数量是固定的,但项目需求却在不断增…

作者头像 李华
网站建设 2026/6/17 0:23:29

MC9S08GW64开发实战:从电能计量到LCD驱动,手把手掌握嵌入式仪表设计

1. 项目概述与核心价值在工业仪表和能源计量领域,嵌入式系统的设计核心往往围绕着高精度、低功耗和长期稳定性展开。MC9S08GW64这款微控制器,正是飞思卡尔(现恩智浦)为这一细分市场量身打造的利器。它集成了高性能的8位S08内核、高…

作者头像 李华