面试系列-mysql的架构设计

2022-10-27 15:55:47 浏览数 (2)

  1. 连接管理:连接管理的职责是负责认证、管理连接、获取权限信息,创建TCP连接池,为了解决TCP,无限创建与TCP频繁创建销毁带来的资源耗尽、性能下降问题,服务器里有专门的TCP连接池限制接数,采用长连接模式复用TCP连接,来解决上述问题。
  2. SQL接口:负责处理接收到的SQL语句,MySQL内部首先提供了一个组件,就是SQL接口(SQL Interface),他是一套执行SQL语句的接口,专门用于执行我们发送给MySQL的那些增删改查的SQL语句,因此MySQL的工作线程接收到SQL语句之后,就会转交给SQL接口去执行;
  3. 查询解析器:让MySQL能看懂SQL语句,查询解析器(Parser)就是负责对SQL语句进行解析,按照既定的SQL语法,对我们按照SQL语法规则编写的SQL语句进行解析,然后理解这个SQL语句要干什么事情;
  4. 查询优化器:选择最优的查询路径;
  5. 存储引擎接口,真正执行SQL语句,存储引擎其实就是执行SQL语句的,他会按照一定的步骤去查询内存缓存数据,更新磁盘数据,查询磁盘数据,等等,执行诸如此类的一系列的操作;
  6. 执行器:根据执行计划调用存储引擎的接口,执行器就会去根据我们的优化器生成的一套执行计划,然后不停的调用存储引擎的各种接口去完成SQL语句的执行计划,大致就是不停的更新或者提取一些数据出来;开始执行的时候,要先判断一下对这个表有没有相应的权限,如果没有,就会返回权限错误。如果有权限,根据执行计划调用存储引擎API对表进行的读写;
  7. 存储引擎层:mysql各种存储引擎的设计

0 人点赞