原理:基础
Mysql逻辑架构图
Mysql逻辑架构图主要分三层:
1) 第一层负责连接处理,授权认证,安全等等
每个客户端连接都会在服务器进程中拥有一个线程,服务器维护了一个线程池,因此不需要为每一个新建的连接创建或者销毁线程。
当客户端连接到Mysql服务器时,服务器对其进行认证,通过用户名和密码认证,也可以通过SSL证书进行认证。
一旦客户端连接成功,服务器会继续验证客户端是否具有执行某个特定查询的权限。
2)第二层负责编译并优化SQL
这一层包括查询解析,分析,优化,缓存以及所有的的内置函数。
对于SELECT语句,在解析查询前,服务器会先检查查询缓存,如果能在其中找到对应的查询结果,则无需再进行查询解析、优化等过程,直接返回查询结果。
所有跨存储引擎的功能都在这一层实现:存储过程,触发器,视图。
3)第三层是存储引擎。
存储引擎负责在MySQL中存储数据、提取数据。
存储引擎通过API与上层进行通信,这些API屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明。
存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单地响应上层服务器的请求。
参考文章:
步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
打开黑盒:从 MySQL 架构设计出发,看它是如何执行一条 SQL 语句的?