MySQL体系架构的示例分析

65次阅读
没有评论

共计 1190 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 MySQL 体系架构的示例分析的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

MySQL 体系架构

MySQL 体系架构主要分为两部分:客户端和服务端

MySQL 体系架构的示例分析

客户端

客户端连接器主要负责一些客户端的连接,针对不同的编程语言驱动提供连接服务。

服务端

服务层包括:系统管理和控制工具,连接池,SQL 接口,解析器,查询优化器,缓存。

连接池
负责管理客户端与服务层数据处理的连接,以及对用户执行操作权限的校验。

系统管理和控制工具
负责备份安全,安全管理,集群管理服务和工具等。

SQL 接口
接收客户端 sql 命令,返回用户需要的结果。如:dml,ddl, 存储过程,视图,触发器等命令。

解析器
词语(关键字)分析,语法分析,接收 sql 将其解析,生成解析树,并且语法校验检查。

查询优化器:对生成解析树后并且通过解析器语法后,由优化器选择合适的索引,然后生成执行计划,然后与执行引擎交互。

缓存
缓存机制是由一系列缓存组合起来的。
如:表缓存,记录缓存(sql 查询结果缓存起来,等下一次相同 sql 查询,从缓存中返回 ),
权限缓存,引擎缓存等。如果缓存命中,会直接从缓存中获取数据。

存储引擎层
负责 Mysql 数据的读取和存取,如 InnoDB,MyISAM 等。可插拔式的,可以更换不同的存储引擎。

系统文件层
如日志,数据文件等。

一条 SQL 的执行流程

MySQL 体系架构的示例分析

首先客户端进行连接;

其次在 server 层的连接管理器中验证用户权限等操作;

然后如果是非 8.0 版本的话会去缓存池中查看当前的 sql 的缓存,如果有直接返回;

如果缓存中没有则会由解析器语法语义生成解析树;

优化器解析生成执行计划,并且选择合适的索引;

存储引擎调用 API 接口去查询数据,将查询到的数据更新缓存 cache;

最后返回给客户端;

存储引擎层

存储引擎是 MySQL 中具体与文件打交道的子系统,是基于文件系统抽象出来用于 mysql 和磁盘文件打交道的一个系统;
常用的存储引擎, MyISAM、支持事务的 InnoDB;

MySQL 5.6 版本之前,默认的存储引擎都是 MyISAM;

5.6 版本以后默认的存储引擎就是 InnoDB;

功能对比

MySQL 体系架构的示例分析

InnoDB 支持 ACID 的事务 4 个特性,而 MyISAM 不支持;

InnoDB 支持 4 种事务隔离级别,默认是可重复读 Repeatable Read 的,MyISAM 不支持;

InnoDB 支持 crash 安全恢复,MyISAM 不支持;

InnoDB 支持外键,MyISAM 不支持;

InnoDB 支持行级别的锁粒度,MyISAM 不支持,只支持表级别的锁粒度;

InnoDB 支持 MVCC,MyISAM 不支持;

感谢各位的阅读!关于“MySQL 体系架构的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计1190字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)