【数据库】MySQL 架构简介
2022-01-29 本文已影响0人
熊本极客
1.基本架构
MySQL 采用分层架构,主要包含 Server 层、存储引擎层和文件系统。Server 主要功能是权限管理和 SQL 解析。存储引擎层采用插件化架构,包含 InnoDB、MyISAM、Memory 等,主要负责数据的存储和读取。文件系统是数据存储的后端。
mysql 架构图.jpg① 连接器: 身份认证和权限相关。
② 查询缓存:执行查询语句的时候,会先查询缓存。
③ 分析器:分析 SQL 语句,即首先提取信息,然后检验。
④ 优化器:MySQL 确定最佳的执行方案。
2.Server 的组件简介
2.1 连接器
负责用户的身份认证,包括校验账户密码,权限等操作。如果用户账户密码已通过,连接器会到权限表中查询该用户的所有权限,之后在这个连接里的权限逻辑判断都是会依赖此时读取到的权限数据,也就是说,后续只要这个连接不断开,即时管理员修改了该用户的权限,该用户也是不受影响的。
2.2 查询缓存
MySQL 8.0 版本后移除。
2.3 分析器
2.3.1 词法分析
解析和提取 SQL 语句中的关键信息。首先要提取关键字,比如 select,提出查询的表,提出字段名,提出查询条件等。
2.3.2 语法分析
检验 SQL 语句,即判断词法分析提取的关键信息是否正确,是否符合 MySQL 的语法。
2.4 优化器
MySQL 确定最佳的执行方案(有时候可能也不是最优,这篇文章涉及对这部分知识的深入讲解),比如多个索引的时候该如何选择索引,多表查询的时候如何选择关联顺序等。
2.5 执行器
当选择了执行方案后,MySQL 就准备开始执行了,首先执行前会校验该用户有没有权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎的接口,返回接口执行的结果。