【数据库】——MySQL服务器端整体架构及存储引擎概述

我们知道,MySQL数据库是一个插件式存储引擎的数据库。
那么,我们首先来了解一下MySQL服务器端的整个架构。

我们知道MySQL是一个基于C/S的架构。通常情况下,我们把数据库mysql端开启了过后,通过客户端mysql命令mysql -u root -p去连接数据库服务器。
在这里插入图片描述

一、MySQL服务器端架构

在这里插入图片描述
1、链接到达过后,先由服务器端的连接池模块接收
作用:唤醒池里面的一个沉睡的链接来接受这条请求。

2、服务器管理模块
作用:从服务器管理模块拿到mysql用户的id,host和密码进行匹配,如果匹配成功就允许客户端登录。

3、SQL API模块
接着服务器等待客户端发送其他sql语句,比如说客户端发送select * from stu;就进入结构化查询语句的接口模块。处理DDL和DML语句。

4、SQL解析器模块
因为我们发送的SQL语句是一个高级语言,服务器只能识别0101的机器语言,所以该模块先对SQL语句进行此法语法分析。

5、SQL优化器模块
针对SQL语句进行优化,产生执行计划(制定出这条SQL语句的执行流程,可能给出n多个执行策略,最终选择最合适的一条执行计划)

6、缓冲区模块
该条执行计划先从该模块查找数据

7、存储引擎
数据操作和磁盘间的中间层,该模块规定了底层硬件的操作方式。选择的存储引擎的不同针对底层文件的操作不同。

8、日志模块
比如说当我们要删除一个信息的时候,该模块就记录了删除前和删除后的数据库信息以及操作信息。

二、MySQL存储引擎的操作

1、查看当前默认的存储引擎
在这里插入图片描述
2、查询当前数据库支持的存储引擎
方法一:show engines;
在这里插入图片描述
方法二:show variables like ‘have%’;
在这里插入图片描述
3、设置新表的存储引擎
在这里插入图片描述
4、将一个已经存在的表修改成其他的存储引擎
在这里插入图片描述

三、各种存储引擎的特性

在这里插入图片描述
MyISAM:支持全文索引,不支持外键,B树索引,表锁,不支持事务
InnoDB:不支持全文索引,支持外键,B树,行锁,支持事务
MEMORY:内存中,临时表,varchar当成char类型处理,不支持text(大文本)和BLOB(图片)
ARCHIVE:归档,归档。以1:10的比例压缩 数据量大查询少 适用于日志数据
后面的文章,我们会详细的介绍几种存储引擎,敬请期待吧~

发布了62 篇原创文章 · 获赞 7 · 访问量 2557

猜你喜欢

转载自blog.csdn.net/qq_43412060/article/details/104806950