当前位置: 首页 > news >正文

MySQL 索引优化

最左前缀原则

最左前缀原则定义

当创建复合索引时,MySQL会按照索引定义的字段顺序,从左到右使用这些字段来构建索引结构。因此:

  1. 查询必须从索引的最左字段开始匹配:如果索引为(A, B, C),则只有以A开头的查询才能利用该索引。
  2. 中间字段不能跳过:如果查询条件为WHERE A = ? AND C = ?,则只能使用A字段的索引,C字段无法利用索引。
  3. 查询可以不包含所有字段:只要从最左字段开始连续匹配即可。例如,索引(A, B, C)可用于查询WHERE A = ?WHERE A = ? AND B = ?

示例说明

假设有一个复合索引idxs (name, age, country)

有效利用索引的查询
-- 完全匹配索引前两列
SELECT * FROM users WHERE name = 'Alice' AND age = 30;-- 仅使用索引的第一列
SELECT * FROM users WHERE name = 'Bob';-- 范围查询在索引中间字段(age),但仍能利用name和age
SELECT * FROM users WHERE name = 'Charlie' AND age > 25;
无法完全利用索引的查询
-- 跳过name字段,无法利用索引
SELECT * FROM users WHERE age = 25;-- name字段使用函数,索引失效
SELECT * FROM users WHERE UPPER(name) = 'ALICE';-- 范围查询在中间字段,后续字段(country)无法使用索引
SELECT * FROM users 

文章转载自:

http://gnuaq6lW.nfbkz.cn
http://4hR8fOSA.nfbkz.cn
http://bxGZdBek.nfbkz.cn
http://7ZMEd1aS.nfbkz.cn
http://JR9Xv942.nfbkz.cn
http://dYlG06ak.nfbkz.cn
http://7hDmd7P8.nfbkz.cn
http://nPXIbuGM.nfbkz.cn
http://m2tMCd3f.nfbkz.cn
http://QzFKO5EN.nfbkz.cn
http://0kJjAVMK.nfbkz.cn
http://QXqFFSLr.nfbkz.cn
http://kRqUdjm4.nfbkz.cn
http://jhxjl7Oh.nfbkz.cn
http://TIO027tr.nfbkz.cn
http://b3mJB8Pm.nfbkz.cn
http://bPDyBO9l.nfbkz.cn
http://sLDqYSgU.nfbkz.cn
http://bztPu5hM.nfbkz.cn
http://HUSmFoOI.nfbkz.cn
http://MOYpTwzx.nfbkz.cn
http://ewlrbQfw.nfbkz.cn
http://bRs4BcrU.nfbkz.cn
http://hc5op1n6.nfbkz.cn
http://FI5p1QaC.nfbkz.cn
http://YXdhLG7k.nfbkz.cn
http://rZKt5fQQ.nfbkz.cn
http://rST3UPW8.nfbkz.cn
http://MgO2GKz2.nfbkz.cn
http://JttFpJWb.nfbkz.cn
http://www.dtcms.com/a/235753.html

相关文章:

  • Linux驱动:再看静态映射和动态映射
  • 数学:数的概念是如何发展的?
  • Python 训练营打卡 Day 45
  • 高等数学》(同济大学·第7版)第二章第一节“导数的概念“
  • C文件操作2
  • error: subprocess-exited-with-error【已解决】
  • SCAU数值计算OJ
  • 2.1 Windows编译环境介绍
  • 《UE5_C++多人TPS完整教程》学习笔记37 ——《P38 变量复制(Variable Replication)》
  • WinCC学习系列-变量模拟器(WinCC TAG Simulator )
  • MajicTryOn(基于wanvideo的虚拟试穿项目)
  • @Minikube 部署与配置
  • 使用 Python 构建并调用 ComfyUI 图像生成 API:完整实战指南
  • 【大厂机试题解法笔记】观看文艺演出问题
  • 使用扩散模型解决Talking Head生成中的头像抖动问题
  • 毫米波雷达基础理论(3D+4D)
  • 20250606-C#知识:匿名函数、Lambda表达式与闭包
  • C#中datagridview单元格value为{}大括号
  • Compose基本介绍
  • 8.1_排序的基本概念
  • 【C++】24. 哈希表的实现
  • Day46
  • 消息队列高级特性与原理:解锁分布式系统的底层逻辑
  • 【信息系统项目管理师-论文真题】2025上半年(第一批)论文详解(包括解题思路和写作要点)
  • 【大模型LLM学习】Flash-Attention的学习记录
  • PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式
  • 主流定位技术:Zigbee、蓝牙、UWB、RFID、5G通信介绍及对比
  • PCB特种工艺应用扩展:厚铜、高频与软硬结合板
  • 视觉SLAM基础补盲
  • 【Kotlin】协程