1.连接层

Mysql 架构(1)+

MySQL 启动( MySQL 服务器就是一个进程),等待客户端连接,每一个客户端连接请求,
服务器都会新建一个线程处理(如果是线程池的话,则是分配一个空的线程),每个线程独
立,拥有各自的内存处理空间
show VARIABLES like '%max_connections%'
 
2.认证层
 
Mysql 架构(1)
 
连接到服务器,服务器需要对其进行验证,也就是用户名、 IP 、密码验证,一旦连接成功,
还要验证是否具有执行某个特定查询的权限(例如,是否允许客户端对某个数据库某个表的
某个操作)
 
3.处理层
 
Mysql 架构(1)
 
这一层主要功能有: SQL 语句的解析、优化,缓存的查询, MySQL 内置函数的实现,跨存储
引擎功能(所谓跨存储引擎就是说每个引擎都需提供的功能(引擎需对外提供接口)),例如:
存储过程、触发器、视图等。
1. 如果是查询语句( select 语句),首先会查询缓存是否已有相应结果,有则返回结果,无则
进行下一步(如果不是查询语句,同样调到下一步)
2. 解析查询,创建一个内部数据结构(解析树),这个解析树主要用来 SQL 语句的语义与语
法解析;
3. 优化:优化 SQL 语句,例如重写查询,决定表的读取顺序,以及选择需要的索引等。这一 阶段用户是可以查询的,查询服务器优化器是如何进行优化的,便于用户重构查询和修改相
关配置,达到最优化。这一阶段还涉及到存储引擎,优化器会询问存储引擎,比如某个操作
的开销信息、是否对特定索引有查询优化等

相关文章: