MYSQL进阶篇(一)

本文详细介绍了MYSQL的存储引擎(InnoDB、MYISAM和Memory)特点及选择,索引的概述、结构(B+Tree和Hash)、分类,以及SQL优化技巧,包括主键优化、orderby和groupby优化等。
摘要由CSDN通过智能技术生成

一.存储引擎

MYSQL体系结构

在这里插入图片描述

存储引擎简介

在这里插入图片描述

存储引擎特点

InnoDB

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

MYISAM

在这里插入图片描述

Memory

在这里插入图片描述

区分

在这里插入图片描述

存储引擎选择

绝大部分的场景都是选择InnoDB
在这里插入图片描述
在这里插入图片描述

二.索引

索引概述

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

优缺点

在这里插入图片描述

索引结构

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

在这里插入图片描述
多路平衡树的原理,建议看黑马mysql进阶的p68理解
在这里插入图片描述

B+Tree索引

注意:B+Tree索引是BTree索引的变种,因此在mysql查询数据结构的时候会显示为BTree。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hash索引

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

索引分类

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

思考题

在这里插入图片描述

在这里插入图片描述

索引语法

在这里插入图片描述

案例

在这里插入图片描述

SQL性能分析

SQL执行频次

在这里插入图片描述

慢查询日志

在这里插入图片描述

profile

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

explain执行计划

在这里插入图片描述
各字段中重点需要关注type、possible_key、key、key_len
对于type的各个类型详解,可以看黑马的mysql进阶p78
在这里插入图片描述
在这里插入图片描述

索引使用

在这里插入图片描述
注意:最左前缀法则的sql语句并不需要按照顺序书写,只要存在最左的的索引即可
在这里插入图片描述
因此在业务中尽量使用大于等于或者小于等于
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

or连接的条件

在这里插入图片描述

数据分布影响

在这里插入图片描述

SQL提示

在这里插入图片描述

覆盖索引

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

思考题

该题针对username和password针对联合索引即可
在这里插入图片描述

前缀索引

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

单列索引和联合索引

在这里插入图片描述
不需要回表查询,且要满足最左前缀法则
在这里插入图片描述

索引设计原则

在这里插入图片描述

总结

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

三.SQL优化

插入数据

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

主键优化

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

页合并和页分裂

建议看一下黑马mysql进阶的p90视频结合ppt理解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主键设计原则

在这里插入图片描述

order by优化

注意:order by 和where条件对于索引语句的顺序有差别,使用where的时候,where后面的条件可以不需要顺序,只要出现满足最左前缀法则即可;但是order by后面的条件必须要也满足最左前缀法则的顺序才行
在这里插入图片描述
可以看到,当两个条件的索引排序规则不同时,需要具体指定排序规则
在这里插入图片描述
在这里插入图片描述
show variables like ‘sort_buffer_size’;
在这里插入图片描述

group by优化

在这里插入图片描述

limit优化

在这里插入图片描述

count优化

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

update优化

在这里插入图片描述

总结

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值