服务层是MySQLServer核心,主要包含系统管理和控制工具,连接池,SQL接口,解析器,查询优化器和缓存六个部分
连接池:负责存储和管理客户端与数据库的连接,一个线程负责管理一个连接
系统管理和控制工具:例如备份恢复,安全管理,集群管理等
SQL接口:用于接受客户端发送的各种SQL命令,并且返回用户需要查询的结构,比如DML,DDL,存储过程,视图,触发器
解析器:负责将请求的sql解析生成一个解析树,然后根据一些MySQL规则进一步检查解析树是否合法,使用了词法分析和语法分析,先进行词分析,再进行语法分析,底层使用了c语言
查询优化器:当解析树通过解析器语法检查后,将交由优化器将其转化成执行计划,然后与存储引擎交互
缓存:缓存机制是由一序列小缓存组成的,比如表缓存,记录缓存,权限缓存,引擎缓存等,如果查询缓存命中的查询结果,查询语句就可以直接去查询缓存中取数据