【MySQL运行原理篇】底层运行结构

MySQL整体架构图

在这里插入图片描述
简略版图
在这里插入图片描述

1.1连接管理

  • 一句话:负责客户端连接服务器的部分

网络连接层, 对客户端的连接处理、安全认证、授权等,每个客户端连接都会在服务端拥有一个线程,每个连接发起的查询都会在对应的单独线程中执行。服务器上维护一个线程池,避免为每个连接创建和销毁线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名与密码认证,也可以通过SSL证书进行认证。登录认证后,服务器还会验证客户端是否有执行某个查询的操作权限。这一层并不是MySQL所特有的技术。

1.2 解析与优化

  • 查询缓存
  • 语法解析
  • 查询优化

MySQL的核心服务功能层,该层是MySQL的核心,包括查询缓存,解析器,解析树,预处理器,查询优化器。主要进行查询解析、分析、查询缓存、内置函数、存储过程、触发器、视图等,select操作会先检查是否命中查询缓存,命中则直接返回缓存数据,否则解析查询并创建对应的解析树

1.3 存储引擎

存储引擎,负责数据的存储和提取,MySQL服务器通过API与存储引擎通信,屏蔽了各种引擎之间的差异,常见的存储引擎有:InnoDB、MyISAM。

1.3.1 MySQL支持的存储引擎:

存储引擎描述
ARCHIVE用于数据存档(归档,记录后不能再修改)
BLACKHOLE丢弃写操作,读操作会返回空内容
CSV以英文逗号分隔的方式存储数据
FEDERATED用来访问远程表
InnoDB支持事务、行级锁、外键
MEMORY数据存在内存,不存磁盘;多用于临时表
MERGE用来管理多个MyISAM表构成的表集合
MyISAM主要是非事务处理存储引擎
NDBMySQL集群专用存储引擎

备注:我们最常用的存储引擎是InnoDB,MyISAM,MEMORY,后面文章会对InnoDB做详细的架构分析

1.3.2 三者的区别:

在这里插入图片描述

1.3.3 设置表的存储引擎

CREATE TABLE 表名(
	建表语句
) ENGINE = 存储引擎名称

1.4 文件系统

物理层 , 数据存储与日志, 将数据存放在硬盘上,后面文章会对磁盘结构做详细讲解。

总结

MySQL底层其实就相当于一个web应用结构。

例如:用户前端通过点击按钮发起ajax请求到java后台,后台接收到请求后将用户操作进行业务处理后,通过orm持久层框架(将业务实体与数据表联合)连接mysql,并将封装后的sql语句发送给mysql,mysql接收到sql后进行解析,优化,缓存。接着调用存储引擎的增删改查接口,对磁盘的database进行操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Romeo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值