mysql的逻辑架构分为两层,从上层往下依次为核心服务层、存储引擎层。
核心服务层(server层)
核心服务层主要负责与客户端交互,做sql的解析检查优化,与存储引擎层交互,查询更新数据。server层包括以下,连接器、缓存、解析器、预处理器、优化器、执行器。
1、连接器
连接器负责与客户端建立连接,管理连接,权限管理。
2、缓存
将查询语句返回的结果存入内存,下次若遇到相同的查询,则直接返回内存中的数据。
3、分析器
3.1 词法分析
将sql语句中关键字如果select
,列、字段等字符串解析出来,生成一个解析树。
3.2 语法分析
对解析树做语法分析,判断是否符合mysql语法标准。
4、优化器
生成执行计划。如查询是否要使用索引,连接查询以哪个表为驱动表。
5、执行器
判断客户端是否具有相关表、字段的权限。执行语句。
存储引擎层
主要负责数据的存取。