MySQL的逻辑架构
总体分层
连接层
是用来与客户端进行连接的一个服务,主要完成一些类似连接的处理,授权认证及相关的安全方案的处理,在该层上还引入了连接池的概念
服务层
提供核心的服务功能,如 SQL 接口,完成缓存的查询,SQL 的分析和 SQL 的优化部分及内置函数的执行,所有跨存储引擎的功能都在这一层实现,服务器会解析查询 SQL 并创建相应的内部解析器,并对其完成相应的优化,生成相应的执行操作,服务器还会查询内部的缓存,如果缓存的空间足够大,这样可以解决在大量读的操作环境中,能够很好的提升系统的性能
引擎层
存储引擎才是真正负责 MySQL 中数据的存储和提取,服务器通过 API 与存储引擎进行通信,不同的存储引擎提供的功能不同,可以根据自己的实际需求来进行选取
存储层
主要是将数据存储在运行的计算机文件系统之上,并完成与存储引擎的交互
逻辑架构图
逻辑架构组成
connect 连接层
- Connection Pool:连接池
业务层
- Mangement Service:备份、安全、复制、集群
- SQL interface:存储过程、视图、触发器
- Parser(解析器):查询事务、对象权限
- Optimizer(优化器):自带的优化器,MySQL 自认为最优的形式去优化你的 SQL
- Cache Buffers:缓存
可插拔式的存储引擎
常用的如 MyISAM,InnoDB,不同的存储引擎擅长的操作不同,也就是功能不同
File System 文件存储
MySQL 分层的好处
哪层出问题,就去找哪层,插件式的存储引擎,将查询处理和其它的系统任务以及数据的提取分离开来,可以根据业务的需求和业务的需要选择合适的存储引擎