MySQL - 逻辑架构

2021/07/13 database 共 566 字,约 2 分钟
Bob.Zhu

MySQL逻辑架构

逻辑架构-图1 逻辑架构-图1

逻辑架构-图2 逻辑架构-图2

第一层:链接处理

大多数基于网络的客户端/服务器工具等都有类似的架构。比如链接处理、授权认证、安全等

第二层:大多数的核心服务功能

包括查询解析、分析、优化、缓存以及所有的内置函数(如:日期、时间、数学和加密函数), 所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等

第三层:存储引擎

负责 MySQL 中数据的存储和提取。和 Linux 下文件系统一样,每个存储引擎都有他的优势和劣势。 服务器通过 API 与存储引擎进行通信,这些接口屏蔽了不同存储引擎之间的差异。

存储引擎 API 包含十几个底层函数,用于执行诸如 「开始一个事物」或「根据主键提取一行记录」等操作。 单存储引擎不会去解析 SQL(InnoDB 是一个列外,它会解析外键定义,MySQL 服务器本身没有实现该功能), 不同存储引擎之间也不会相互通信,而只是简单的响应上层服务器的请求

查询执行流程

1) 客户端发送一条查询给服务器。 2) 服务器先检查查询缓存,如果命中了缓存则立刻返回存储在缓存中的结果,否则进入下一阶段。 3) 服务器端进行 SQL 解析、预处理,再由优化器生成对应的执行计划。 4) MySQL 根据优化器生成的执行计划,调用存储引擎的 API 来执行查询。 5) 将结果返回给客户端。

参考资料

文档信息

Search

    Table of Contents