第1章-3 MySQL的逻辑架构

上一篇:《第1章-2 多版本/复制/innodb引擎》,接下来对第一章的内容,进行一些扩展。先从mysql的逻辑架构开始。

1,总体分层

Mysql 总体的设计体系结构可分为四层

1,连接层

连接层:客户端(Client connettion)、系统管理(Management Serveices & Utilities)、连接池管理(Connection Pool)

客户端:与客户端进行连接的服务

系统管理:主要完成一些类似连接处理,授权认证 及相关的安全方案.

连接池管理:在该层上引入了连接池的概念,

2,服务层

提供核心的服务功能,SQL接口(SQL Interface),缓存(Cache)、解析器(Parser)、优化器(Optimizer)

如果sql接口,完成缓存的查询,sql的分析和优化部分及内置函数的执行。所有跨存储引擎的功能都在这一层实现。服务器会解析查询并创建相应的内部解析权,并对其完成相应的优化,生成相应的执行操作。

服务器还会查询内部的缓存,如果缓存空间足够大,这样可以解决大量读操作的环境中,能够很好的提升系统性能

3,引擎层

存储引擎(Engine)是真正负责MYSQL中数据的存储和提取,服务器通过API与存储引擎进行通信。中间的服务层通过API与存储引擎通信,屏蔽了不同存储引擎实现上的差异。

不同的存储引擎提供的功能不同,可以根据自己的实际需求来进行选取

4,存储层

文件(File)、日志(Log),主要是将数据存储在运行的计算机文件系统之上,并完成与存储引擎的交互

2,逻辑架构图

3,逻辑架构组成

1,connect连接层

Connection Pool连接池。负责监听和管理客户端的连接以及线程处理等。每一个连接到 MySQL 服务器的请求都会被分配一个连接线程。连接线程负责与客户端的通信,接受客户端发送的命令并且返回服务器处理的结果

2,业务层

1,Mangement Service

对MySOL的集成管理,如备份(Backup)、恢复(Recovery)、安全管理(Security)等

2,SQL interface

接收客户端发送的各种 DML和 DDL 命令,并且返回用户查询的结果。另外还包括所有的内置函数(日期、时间、数学以及加密函数)和跨存储引擎的功能,例如存储过程、触发器、视图等

3,Parser解析

对 SQL 语句进行解析,例如语义和语法的分析和检查,以及对象访问权限检查,查询事务等。

4,Optimizer优化器

自带优化器,Mysql自认为最优的形式去优化。利用数据库的统计信息决定 SQL 语句的最佳执行方式。使用索引还是全表扫描的方式访问单个表,多表连接的实现方式等。优化器是决定查询性能的关键组件,而数据库的统计信息是优化器判断的基础。

5,Cache Buffers

由一系列缓存组成的,例如数据缓存、索引缓存以及对象权限缓存等。对于已经访问过的磁盘数据,在缓冲区中进行缓存;下次访问时可以直接读取内存中的数据,从而减少磁盘 IO。

3,可拔插组件式存储引擎

存储引擎是对底层物理数据执行实际操作的组件,为服务器层提供各种操作数据的 API。MySQL 支持插件式的存储引擎,包括 InnoDB、MyISAM、Memory 等,不同的存储引擎擅长的操作不同

4,File system文件存储

4,分层好处

1,哪个出问题,就去找哪个

2,插件式的存储引擎,将查询处理和其它的系统任务以及数据的提取相分离

3,可以根据业务的需求和业务的需要选择合适的存储引擎

总结:

了解mysql的逻辑架构,对mysql有一个整体的认识

上一篇:《第1章-2 多版本/复制/innodb引擎

下一篇:《第1章-4 并发控制

相关推荐
在未来等你3 小时前
SQL进阶之旅 Day 21:临时表与内存表应用
sql·mysql·postgresql·database·temporary-table·memory-table·sql-optimization
小Tomkk4 小时前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
寒山李白7 小时前
MySQL复杂SQL(多表联查/子查询)详细讲解
sql·mysql·子查询·多表联查
冰橙子id7 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php
玛奇玛丶7 小时前
面试官:千万级订单表新增字段怎么弄?
后端·mysql
天天摸鱼的java工程师8 小时前
从被测试小姐姐追着怼到运维小哥点赞:我在项目管理系统的 MySQL 优化实战
java·后端·mysql
Clang's Blog8 小时前
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
数据库·mysql·php·wordpr
异常君9 小时前
高并发数据写入场景下 MySQL 的性能瓶颈与替代方案
java·mysql·性能优化
RestCloud9 小时前
如何通过ETLCloud实现跨系统数据同步?
数据库·数据仓库·mysql·etl·数据处理·数据同步·集成平台
程序员岳焱9 小时前
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
后端·sql·mysql