索引使用规则

本文详细介绍了MySQL中索引的建立与使用规则,包括最左前缀匹配原则、=与in操作符的索引乱序使用等,并提供了一套慢查询优化的基本步骤,帮助读者理解如何有效提升数据库查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、索引的建立和使用规则

 

1:最左前缀匹配原则

mysql 会从左向右,匹配直到遇到范围查询(>,<,between,like)就停止匹配

比如建立(a,b,c,d)顺序的索引

使用这样的查询语句 a = 1 and b=2 and c>3 and d =4 ; d是用不到索引的

但如果建立(a,b,d,c)的索引则都可以用到 , a,b,d 的顺序可以调整

 

2: = 和 in 可以乱序 ,比如a =1 and b = 2 and c =3 

建索引的顺序可以任意 : (a,b,c)或 (b,a,c)

 

3:使用区分度高(选择性高)来做索引

 

4:索引列不能参与计算

 

5:尽量使用联合索引,不用使用单独索引

 

二、执行计划

rows是核心标志,绝大部分rows小的语句执行一定很快。

 

慢查询优化基本步骤

0.先运行看看是否真的很慢,注意设置SQL_NO_CACHE
1.where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高
2.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询)
3.order by limit 形式的sql语句让排序的表优先查
4.了解业务方使用场景
5.加索引时参照建索引的几大原则

6.观察结果,不符合预期继续从0分析 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值