当前位置: 首页 > 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 

相关文章:

  • 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_排序的基本概念
  • 阿里云企业网站备案/bt磁力搜索神器
  • mibt wordpress/滕州seo
  • 宝安led行业网站建设/如何给网站做推广
  • 设计的网站都有哪些功能/百度平台订单查询
  • 安庆网站建设服务网/高权重外链
  • 找网站设计/什么是市场营销