索引优化3|学习笔记

简介: 快速学习索引优化3

开发者学堂课程【MySQL 高级应用 - 索引和锁索引优化3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8612


索引优化3


一、索引中范围条件

存储引擎不能使用索引中范围条件右边的列。

输入:

mysql> EXPLAIN SELECT  *  FROM staffs WHERE NAME ='July' AND age=25 AND pos='manager'

得到:

image.png

看到没有变化,这时改变一下:

mysql> EXPLAIN SELECT  *  FROM staffs WHERE NAME ='July' AND age > 25 AND pos='manager'

我们得到:

image.png

Type ref 的访问级别,NAME 用于查询。

从范围和长度看出来上一 type ref,而到下一 type 变成 range,这时范围本身 age 索引时已用到,所以索引用到了 NAME age,但是此时age用到了排序, NAME 去查找,但25之后 pos 都没用到,这就是范围之后全失效。

image.png

那么上图就可以看到 key-len7478,说明 age 有被用到排序。NAME 用到了查找。

相关文章
|
索引
索引优化
索引优化
367 0
|
6月前
|
SQL 存储 Java
9个SQL优化技巧
本文总结了SQL查询优化的几个关键策略:1) 避免使用`select *`,只查询需要的字段;2) 检查执行计划,确保查询条件和排序字段使用了索引;3) 避免使用`or`连接,可考虑用`union`替代;4) 减少`in`和`not in`的使用,尤其是大数据量时;5) 避免左模糊查询,以利用索引;6) 使用JOIN代替子查询,提高效率;7) 根据需求选择合适的JOIN类型(如INNER JOIN、LEFT JOIN);8) 优化`group by`字段,使用索引和覆盖索引;9) 对深分页查询进行优化,如使用子查询、标签记录法。这些策略有助于提升接口性能和数据库效率。
174 1
|
6月前
|
SQL 关系型数据库 MySQL
8种常见SQL优化
8种常见SQL优化
57 0
|
SQL
记一段sql优化
记一段sql优化
59 0
|
SQL 存储 关系型数据库
当谈SQL优化时谈些什么(上)
当谈SQL优化时谈些什么
93 0
|
SQL Prometheus 监控
数据库优化 - SQL优化
数据库优化 - SQL优化
143 0
|
SQL 前端开发 关系型数据库
索引优化|学习笔记
快速学习索引优化
110 0
索引优化|学习笔记
|
SQL 关系型数据库 MySQL
索引优化4|学习笔记
快速学习索引优化4
索引优化4|学习笔记
|
SQL 关系型数据库 MySQL
索引优化7|学习笔记
快速学习索引优化7
索引优化7|学习笔记
|
关系型数据库 MySQL 开发者
索引优化6|学习笔记
快速学习索引优化6
索引优化6|学习笔记