news 2026/8/7 7:33:18

MySQL索引使用--最左前缀法则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL索引使用--最左前缀法则

验证索引效率

在未建立索引之前,执行如下SQL语句,查询SQL的耗时:

select * from tb_sku where sn='SN0003450001'

针对字段创建索引

create index idx_sku_sn on tb_sku(sn);

创建完索引之后,再来看这条查询sql的耗时。

查看sql的执行计划

最左前缀法则:

如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的字段索引失效)。

-- 1. 查询profession、age、status三个条件 explain select * from tb_user where profession = '软件工程' and age = 31 and status = '0'; -- 2. 查询profession、age两个条件 explain select * from tb_user where profession = '软件工程' and age = 31; -- 3. 仅查询profession条件 explain select * from tb_user where profession = '软件工程'; -- 4. 查询age、status两个条件(缺少profession) explain select * from tb_user where age = 31 and status = '0'; -- 5. 仅查询status条件 explain select * from tb_user where profession = '软件工程' and status = '0';

tb_user表中的索引如下

最左前缀法则的验证:

a)执行

select * from tb_user where profession='软件工程' and age=31 and status='0';

可能使用的索引是 idx_pro_age_sta; 实际使用的索引是 idx_pro_age_sta;

b)执行

select * from tb_user where profession = '软件工程' and age = 31;

可能使用的索引是idx_pro_age_sta, 实际使用的索引是idx_pro_age_sta;idx_pro_age_sta;

c) 执行

select * from tb_user where profession = '软件工程';

可能使用的索引是idx_pro_age_sta, 实际使用的索引是idx_pro_age_staidx_pro_age_sta

d)执行

select * from tb_user where age = 31 and status = '0';

没有匹配的索引可以使用。

e)执行

select * from tb_user where profession = '软件工程' and status = '0';

索引的长度是43,说明只有profession字段使用到了索引; status字段的索引失效。

f)执行

select * from tb_user where age = 31 and status = '0' and profession = '软件工程';

索引长度是55,说明三个字段的索引都用上了。这说明字段在where条件中的位置无关。

范围查询,联合索引中,出现范围查询(>,

explain select * from tb_user where profession = '软件工程' and age > 30 and status ='0'; explain select * from tb_user where profession = '软件工程' and age >= 30 and status = '0';

age 使用了范围查询,age右边的列status会失效,因此索引的长度是48.

age 使用>=的范围查询时,age右边的列不会索引失效。

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

万元级旗舰值不值?三星三折叠价格和功能深度拆解

当19999元的起售价与“四屏三折叠”的创新形态相遇,消费者难免好奇:三星三折叠价格和功能是否匹配?这款名为三星Galaxy Z TriFold的全新旗舰,以突破常规的设计和配置,成为高端手机市场的焦点,其价格背后的功…

作者头像 李华
网站建设 2026/8/7 8:02:11

无损剪辑新纪元:LosslessCut重塑视频处理体验

无损剪辑新纪元:LosslessCut重塑视频处理体验 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字内容创作蓬勃发展的今天,视频处理工具的选…

作者头像 李华
网站建设 2026/8/7 22:52:50

对等保2.0的理解

一、本质:从 “被动合规” 到 “主动防护” 的理念升级等保 2.0 的核心本质,是将网络安全从 “事后补救、单点防护” 推向 “事前预防、体系化防御”。等保 1.0 时代,企业多以 “通过测评” 为目标,侧重满足静态指标(如…

作者头像 李华
网站建设 2026/8/7 22:44:49

深蓝词库转换终极指南:5分钟搞定跨平台词库同步

深蓝词库转换终极指南:5分钟搞定跨平台词库同步 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 还在为不同输入法之间的词库不兼容而烦恼吗?深…

作者头像 李华
网站建设 2026/8/7 1:51:27

BibTeX国标引用终极指南:自动化排版让学术写作更轻松

在学术写作中,参考文献格式的规范化是每位研究者必须面对的挑战。GB/T 7714-2015国家标准作为中国学术出版的重要规范,其严格的要求常常让新手望而却步。今天,我们要介绍的GB/T 7714 BibTeX样式库,正是为解决这一痛点而生——它能…

作者头像 李华