Mysql培训第一天

Mysql的体系结构

SQL语句执行步骤:
解析–>执行步骤
执行(讲的就是在存储引擎中将数据取出来,然后进行排序,innodb引擎可以排序但myisam也可以做啊,所以排序不是在引擎层做的,而是在服务层做的,)(只有执行是在引擎中做的,其他的都是在服务层做的)
获取(排序)
InnoDB,如果没有主键,会用第一个非空且唯一的列,如果没有第一个非空且唯一的列,会建立隐藏列(6字节)

Mysql是单进程的(单进程,多线程)
能用中间键就用中间键 例如:redis

现如今Mysql主流数据库架构:主从数据库
Mysql是千万级别的数据库(每张表的存储量一般在8千万)
采用分布式数据库
主从数据库—>分布式数据库(过度)
总结: Mysql我自己能抗住的我自己扛,扛不住的用其他的中间键,单表最佳存储量式千万级别,但我可以采用分表分库,多台mysql数据库来存取一张表

学习重点: 遇到性能问题 sql语言怎么写,sql语句怎么写,这不是我们平时学习的重点,你要想提升,不是你能写多少语句,写多复杂的存储过程,你要想提升,提升的是,你要从性能层面分析出性能问题。
重点学习: 要理解一条SQL语句到Mysql里面是如何流转的

SQL语句执行过程
在这里插入图片描述最上面的倒三角是用户认证
在这里插入图片描述

用户模块---->命令分发器
—>(左)Query Cache Module
以下是Query Cache Module:
在这里插入图片描述
99.9%的情况下不开启Query Cache模块
在这里插入图片描述
当用户假如对一张表中五千万行数据中的一行数据进行修改时,硬盘会帮你再查一遍,这样就会产生大量的磁盘IO
MySql 5.7版本 有query cache模块
下一个版本(即未来的版本)是Mysql8.0版本 将query cache模块去掉

—>(下)Parser(解析)

在这里插入图片描述
Access Control Module 数据库做一个验证,你有没有权限,你能不能去查。
在这里插入图片描述

数据库真正的体系结构:
在这里插入图片描述
核心层:------>CPU和内存部分

硬盘:读数据非常慢,没电也可以用
Cpu+内存:读取快,易失,没电容易没了

存储引擎层----->硬盘

MySQL多存储引擎的原理及其对应:
在这里插入图片描述
2010年的时候Mysql的默认结构:MyISAM(非聚簇)(已经淘汰)
(典型的堆表)

MyISAM(非聚簇):叶子存储值和指针(不支持事务)
主键:非空且唯一

InnoDB(聚簇):主键索引上就是这个数据,叶子就是这个数据

对比: 单从访问读取速度,我们每天访问不可能只从主键访问,肯定有很多条件,会经常用到辅助索引,这样InnoDB是吃亏的。

为什么还要推行InnoDB呢?
因为MyISAM不支持事务,你要修改的话,insert,delete时,它会把你全表锁了,并发非常之低,修改一个表,只能一个人去修改。InnoDB支持行锁,增删改一行的时候,其他行是不受限制的。

在这里插入图片描述
Abstracted Storage Engine Module: 抽象存储引擎

整个执行过程:
Mysql没有共享池机制,一百个调取,要解析100次,但Oracle有共享池,第一个人调取的信息会放在共享池中(内存),后面有需要相同的信息的直接从共享池调取。但有很多人同时进行,这对Mysql是灾难性的。
在这里插入图片描述
Mysql中同时有125个active session时,就会很危险。

问题:当CPU负载特别高可能是什么原因?

答:CPU要处理SQL语句,此时的active session 可能特别多。
在这里插入图片描述

一张表两个文件

在这里插入图片描述
sql读取,先取出来这部分的信息会放在 innodb buffer pool,再想读取这个信息的会直接从innodb buufer pool读取

全表扫描的过程中,MySQL一次读取数据至少是16K,(叫做一个page(页))这16K数据有很多行数据,总这里面找7369,Tom的这个数据。如果7369这个是唯一的,那么扫描完就不扫了。如果不是唯一的,那么要将整张表都放在内存里面,然后做过滤,然后返回给数据。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值