1. MySql基础架构

Mysql的基本架构示意图:

1. MySql基础架构_第1张图片
Mysql逻辑架构图

Mysql可分为:Server层——连接器,查询缓存,分析器,优化器,执行器等。大多数核心服务功能,内置函数,跨存储引擎的功能(存储过程,触发器,视图)

                       存储引擎层——负责数据的存储和提取,是插件式的,支持InnoDB,MyISAM,Memory等多种存储引擎。mysql5.5开始默认存储引擎为InnoDB。不同的存储引擎公用一个server层。


Mysql查询语句的执行过程:

第一步:先使用连接器连接到数据库上,连接器负责跟客户端建立连接,获取权限,维持和管理连接。

第二步:查询缓存,mysql拿到一个查询请求后,会先查询缓存,看之前是否执行过这条语句。执行过的语句和结果会以key-value对的形式,被直接缓存在内存里。如果查询能够直接在缓存中找到key,那么这个value就会被当作查询结果返回给客户端。Mysql8.0开始删除了查询缓存的功能。

第三步:解析SQL语句。分析器会先做“词法分析”,mysql需要识别出sql语句中的字符串分别是什么,代表什么。然后进行“语法分析”,语法分析器会根据语法规则,判断sql语句是否满足mysql语法。

第四步:优化SQL语句。在执行sql语句之前,好要进过优化器的处理。优化器是当表里面有多个索引时,决定使用那个索引;or一个语句中有多表关联的时候,决定表的连接顺序。

第五步:开始执行sql语句。首先验证权限,如果没有相应权限,返回没有权限的错误;如果有权限,打开表继续执行。打开表时,执行器会根据表的引擎定义,使用这个引擎提供的接口执行sql语句。然后将所有满足条件的记录作为结果集返回给客户端。

你可能感兴趣的:(1. MySql基础架构)