了解MySQL的逻辑架构,可以帮助我们更好理解MySQL是如何工作的,以及在MySQL工作中需要注意的地方,并且理解有关于数据库的基本概念与知识。
目录
MySQL的逻辑架构
服务层、核心层和存储引擎层
客户端
- MySQL客户端并不是具体指某个客户端软件,只要能够连接数据,并且可以CRUD数据库的软件都可以叫MySQL客户端;
- 事实上MySQL客户端是一种复合概念,包含:不同程序语言编写的前端应用程序;所调用的API接口;
服务层
服务层主要为了完成线程的管理。
MySQL是一种单线程多进程的软件,假如有一个连接,进程中会派生出一个线程为这个连接提供服务。并不是所有的连接都会得到这个新创建的线程,由于消耗太大。所以产生了 一种叫线程缓冲池的东西,新来一个连接的时候回优先使用线程缓冲池的线程。
核心层
select 执行,MySQL会去缓存搜索是否有当前这个select。
如果有,直接返回结果,这是查询最快的一种方式;
如果没有,解析查询,理解这个Select是什么意思,比如是否要排序,分页,分组。然后优化这个Select语句,优化完成,执行当前Select命令,然后放入缓存,然后返回结果。
存储引擎层
可插式存储引擎
查询管理操作数据。
文件系统
数据库数据文件,日志等。
总图
支持接口
标准的C的API等等,客户端应用程序所调用的API用来连接MySQL数据库。
连接池
用来缓存相应的线程,每一个线程有每一个线程的服务,完成了如图一系列管理。
SQL接口、解析器、优化、缓存和缓冲池
接口为功能上的一些支持,然后让解析器解析清楚,然后优化,最后是缓存结果,为了加快数据库执行的效率。
可插式存储引擎
多种存储引擎,然后操作文件系统,文件日志等系统上一些东西。主要是作为中间件使用。