mysql基础(十一)索引及SQL优化(上)

索引介绍:

表中存在大量数据如果没有索引的时候,要寻找一条数据得进行全表扫描直到找到为上。而有索引的情况下利用B树(多数情况下)只需要查找一部分数据就行。
索引有两大优势:
其一检索快——索引相当于书本的目录,提高检索效率的同时降低数据库IO成本。
其二排序方便——用索引排序,降低数据排序成本和CPU消耗。
也有两大劣势:
其一占空间——索引也是一张表,表中保存主键与索引字段,并指向实体类记录,所以占空间。
其二更新慢——虽然提高了检索效率,但是进行DML的时候不仅要保存数据,还要保存更新了的索引列的字段,也就是数据表和索引表都得变动,这样会让DML操作速度降低。

索引大致分三大类:单值——一个索引只包含单个列,唯一——索引列的值必须唯一(主键约束和唯一约束就属于此类)并允许有空值,复合索引——一个索引包含多个列。

索引原理:
在这里插入图片描述
在这里插入图片描述

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

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

索引的设计原则:

1.查多量大——查询频率高且数据量较大。
2.最佳条件——索引字段就当从where子句条件中选择,如果有多组条件,选择最常用且过滤效果最好的。
3.唯一索引——使用唯一索引,区分度越高效率也越高。
4.控制数量——索引不是越多越好,索引越多维护代价也越高,会带来降低DML效率且占据空间的负面效果。
5.短索引——索引也占空间,所以索引字段长度尽量简短。
6.最左前缀——由多个字段组成的联合索引,相当创建了多个索引,使用中依情况使用最前面几个(最左边),不能跳过字段。
7.很少修改——做为索引的字段应当很少进行DML操作。

SQL优化流程:

先查看SQL执行频率
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
再定位低效SQL语句:

在这里插入图片描述
分析执行语句:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来通过对执行情况表的字段做演示说明
在这里插入图片描述

id字段:
在这里插入图片描述
在这里插入图片描述
select_type(查询类型)字段:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
type(联接类型)字段:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
extra字段:
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

性能工具profiling

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

trace分析优化器执行计划

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

索引的使用:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值