新闻资讯

MySQL三层逻辑架构

发布时间:2020-11-19 浏览次数:7

MySQL架构整体分为三层 :

1、客户端 : 并非MySQL所独有,诸如 : 连接处理、授权认证、安全等功能均在这一层处理

2、核心服务 : 包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数),所有的跨存储引擎的功能也在这一层实现 : 存储过程、触发器、视图等

3、存储引擎 : 负责 MySQL 中的数据存储和提取,和 Linux 下的文件系统类似,每种存储引擎都有其优势和劣势,中间的服务层通过 API 与存储引擎通信,这些 API接口 屏蔽不同存储引擎间的差异

MySQL 整个查询执行过程,总的来说分为 5 个步骤 :

1、客户端向 MySQL 服务器发送一条查询请求

2、服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段

3、服务器进行 SQL解析、预处理、再由优化器生成对应的执行计划

4、 MySQL 根据执行计划,调用存储引擎的 API来执行查询

5、将结果返回给客户端,同时缓存查询结果


客户端/服务端通信协议

MySQL客户端/服务器通信协议是“半双工”。在任何时候,要么服务器向客户端发送数据,要么客户端向服务器发送数据。这两个动作不能同时发生。一旦一端开始发送消息,另一端必须接收整个消息才能响应,因此不可能也没有必要将消息切成小块单独发送,也没有办法控制流量。客户端用单个数据包向服务器发送查询请求,因此当查询语句较长时,需要设置max_allowed_packet参数。如果查询太大,服务器将拒绝接收更多数据并抛出异常。相反,服务器响应用户的数据通常很多,由多个数据包组成。然而,当服务器响应客户端的请求时,客户端必须完整地接收整个返回的结果,而不是简单地获取前几个结果,然后让服务器停止发送。所以在实际开发中,保持查询简单,只返回必要的数据,减少通信之间的数据包大小和数量,是一个非常好的习惯,这也是查询中避免SELECT *和增加LIMIT的原因之一。


上一篇: 没有了

下一篇: 运维数据库的作用和特点有哪些?

产品试用 产品试用
400-820-6580 免费电话