1、说说MySQL 分层有哪些
从前面MySQL的架构图,我们可以看出MySQL的架构自顶向下大致可以分为网络连接层、数据库服务层、存储引擎层和系统文件层四大部分。那最主要的两层为Server 层和存储引擎层。
2、Server 层包含哪些模块
Server主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。
3、存储引擎层的主要作用是什么
主要负责数据的存储和读取。server 层通过 api 与存储引擎进行通信。
4、Server 层各基本组件作用是什么
1)连接器:当客户端连接 MySQL 时,server 层会对其进行身份认证和权限校验。
2)查询缓存: 执行查询语句的时候,会先查询缓存,先校验这个 sql 是否执行过,如果有缓存这个 sql,就会直接返回给客户端,如果没有命中,就会执行后续的操作。
3)分析器: 没有命中缓存的话,SQL 语句就会经过分析器,主要分为两步,词法分析和语法分析,先看 SQL 语句要做什么,再检查 SQL 语句语法是否正确。
4)优化器:优化器对查询进行优化,包括重写查询、决定表的读写顺序以及选择合适的索引等,