Mysql 索引 以及 SQL 优化 (自用笔记)

文章详细讲解了数据库索引的语法、性能分析方法,包括查看SQL执行频率、慢查询日志、使用EXPLAIN分析执行计划。讨论了索引的使用原则,如联合索引的效果,以及可能导致索引失效的情况,如字段运算、类型转换和模糊查询。此外,还提到了SQL优化策略,如INSERT的优化、主键设计与删除优化、ORDERBY和GROUPBY的索引使用,以及LIMIT和COUNT的优化。

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

(笔记来源
https://www.bilibili.com/video/BV1Kr4y1i7ru?p=88&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)

3.索引

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.1索引的语法

在这里插入图片描述

3.1索引的性能分析

3.1.1查看SQL执行频率

增删改为主的SQL的一般不需要优化
查询居多的SQL则需要优化
在这里插入图片描述

3.1.2慢查询的日志

记录了超过x秒的查询语句,x是自己配置的
在这里插入图片描述
在这里插入图片描述

3.1.3profile详情

如何定位其他的需要优化的语句
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.4 explain执行计划(相对来说比较常用和重点)

在这里插入图片描述
在这里插入图片描述

字段说明
在这里插入图片描述
在这里插入图片描述

3.2 索引的使用原则

(视频会更直观 https://www.bilibili.com/video/BV1Kr4y1i7ru?p=80&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)
在这里插入图片描述
上面的原则是对联合索引起作用的(多个列组合成的索引)

在这里插入图片描述
上面最好用(>= 或者<=),带上= 具体看视频

3.3索引失效的情况

对索引字段进行运算会造成索引失效
在这里插入图片描述
索引字段类型转换 会对索引失效
在这里插入图片描述
模糊查询,如果是尾部模糊查询,索引不会失效,头部模糊查询,索引失效
在这里插入图片描述
or连接的条件
在这里插入图片描述
数据分布的影响
比如建立了索引,但是却没有走看explain语句,没有走索引. 如下图的sql,这张表几乎都符合这个条件,那还不如直接扫描全表,比不走索引更快.
同理,is null 和 is not null 也是一样的道理,is null 和 is not null 哪个条件匹配的结果 几乎等于扫描全表,那么就是直接扫描全表不走索引更快.
(说的不是很清楚 可以看视频https://www.bilibili.com/video/BV1Kr4y1i7ru?p=82&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)
在这里插入图片描述

3.4SQL提示

一个字段多个索引时候,可以用一下语句决定用哪一个索引,不指定,mysql会自行决定用哪一个
在这里插入图片描述

3.5 覆盖索引

在这里插入图片描述
在这里插入图片描述
这个图第二条语句,name不是二级索引,所以需要回表查询.

3.6 前缀索引

(视频https://www.bilibili.com/video/BV1Kr4y1i7ru?p=85&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)
在这里插入图片描述

3.7 单列索引和联合索引的选择

在这里插入图片描述

3.8 索引设计的原则

在这里插入图片描述

3.9索引的总结

在这里插入图片描述
在这里插入图片描述

4.SQL优化

insert的优化

个人工作中,第二种,在开发中,用mybatis时候,确实比较常用. 手动提交事务!
在这里插入图片描述

load指令

在这里插入图片描述

主键优化

在这里插入图片描述
主键乱序插入,有可能产生也分页现象,会增加插入耗时
删除时候,有可能产生页合并
(https://www.bilibili.com/video/BV1Kr4y1i7ru?p=90&spm_id_from=pageDriver&vd_source=3cf72bb393b8cc11b96c6d4bfbcbd890)

主键设计的优化
在这里插入图片描述

order by 优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

group by 优化

在这里插入图片描述
在group by操作时候,可以通过建立对应的group by字段索引,提高效率
索引的使用,也是满足最左前缀法则

limit优化

在这里插入图片描述
将 select * from tb_sku limit 2000000,10优化成上面,确实更省时间

count优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

update 语句的优化

在这里插入图片描述
更新的条件是索引,那么就是行锁,如果不是索引,会升级为表锁.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值