一、基础架构
- MySQL逻辑上可以分为Server层和存储引擎层
- Server层分为:
- 连接器:通过TCP和服务器建立连接,进行身份认证和权限查询,后续的操作都根据权限进行
- 查询缓存:将查询语句缓存,key为语句,value为值,当查询语句命中时直接返回值,但是数据进行更新时,缓存会被清空,MySQL8.0以后取消查询缓存
- 解析器:没有命中缓存则进行词法分析和语法分析,词法分析会提前sql语句的关键词,如select,表名等。语法分析会判断sql语句是否符合规范,不符合返回错误
- 优化器:在词法分析和语法分析后不会马上执行,会进行优化,比如走哪个索引
- 执行器:判断是否有操作权限,有则选择相应的存储引擎进行执行。
- 存储引擎:数据的存储和提取,采用插件式,所有存储引擎共用一个server层