MySql的基础架构
转载:https://zhuanlan.zhihu.com/p/19965157
MySql的基础架构如上图所示,以下是对架构中基础各个模块进行讲解
一、Connectors
可以理解为各种客户端
二、ConnectionPool
与客户端建立连接,我们经常使用MyBatis、Hibnate进行mysql数据库连接的时候需要数据库的信息,mysql驱动等
三、Management Service
系统管理和控制工具
四、SqlInterface
这是对外暴露接收用户请求Sql命令接口,如查询,插入,更新,建表(DML,DDL),以及存储过程的执行等
五、Parser解析器
这是对用户请求过来的sql命令进行解析,解析的过程主要是分为2步
一是词法解析(用户的sql语句进行拆分,词法分析和语法规则模块有两个较成熟的开源工具Flex和Bison)
二是根据mysql语法规则进行语法解析
最终结果都是返回解析数,供优化器使用
解析器解析转载:https://blog.51cto.com/wangwei007/2300959
六、优化器
对解析器解析到的解析树进行处理,找出耗时最短的执行计划
优化器转载:https://blog.****.net/eric_sunah/article/details/17126017
七、缓存
mysql将要缓存的数据放在一张引用表中,然后根据查询的sql语句,数据库名称,客户端协议等生成一个hash值,此hash值对应引用表中的一条缓存记录
缓存转载:https://blog.****.net/eric_sunah/article/details/17510939