MySQL是关系数据库,关系数据库,顾名思义,是建立在关系模型基础上的数据库,我们现实世界中的各种实体以及实体之间的各种联系一般可用关系模型来表示。经过数十年的发展,关系数据库在理论和工业实践中都已经发展到很成熟的地步,可以说,目前的绝大部分应用,使用MySQL都有成熟的解决方案。

数据库的架构一般可以分为应用层,逻辑层,物理层,MySQL也可以这样理解.

对应于MySQL:

应用层,负责和客户端,用户交互,需要和不同的客户端和中间服务器进行交互,建立连接,记住连接的状态,响应它们的请求,返回数据和控制信息(错误信息,状态码等)。

逻辑层,负责具体的查询处理、事务管理、存储管理、恢复管理,以及其他的附加功能。查询处理器负责查询解析、执行,当接收到客户端的Sql查询,数据库就分配一个线程来处理它,由查询处理器生成执行计划,交由计划执行器来执行,执行器的部分操作还需要访问更底层的事务存储管理器操作数据,事务、存储管理器主要负责我们的事务管理、并发控制、存储管理,由我们的事务管理器来确保“ACID”特性,由锁管理器来控制我们的并发,由日志管理器来确保我们的数据持久化,存储管理器一般还包括一个bufer管理器,由它来确定磁盘和内存缓冲之间的数据传输。

物理层,实际物理磁盘(存储)上的数据库文件.如我们的数据文件、日志文件等。

以下是MySQL官方文档的一个基础架构图,图中的Connectors可以理解为各种客户端端,应用服务,图中的Connection Pool 可以理解为应用层,负责连接、验证等功能,图中的Management Services &

Utilities,SQL Interface,Parse,Optimizer,Cache & Buffers,Pluggable Storage

Engines可以理解为我们数据库的大脑——逻辑层。图最下方的Files& Logs可以理解为物理层。