目录
1.MySql的基础架构:分为两层
2.连接器:登录MySql时的身份认证
3.查询缓存:执行查询语句时先查询缓存(MySql8.0后移除)
4.分析器:缓存中未命中,SQL语句通过分析器
5.优化器:MySql进行优化执行
6.执行器:执行SQL语句并从存储引擎返回数据
7.SQL语句的执行过程
文章来源:https://uudwc.com/A/6X3r8
1.MySql的基础架构:分为两层
Server层:包括连接器、查询缓存、分析器、优化器、执行器等,所有的跨存储引擎功能都在这一层实现,比如视图、函数、触发器
存储引擎:主要负责数据的存储与读取,支持InnoDB、MyISAM等多个存储引擎;InnoDB是MySQL的默认存储引擎
2.连接器:登录MySql时的身份认证
功能:负责用户登录数据库时的身份认证和权限操作:验证账号密码
若认证通过,连接器到权限表查询用户的权限,读取权限数据
3.查询缓存:执行查询语句时先查询缓存(MySql8.0后移除)
功能:缓存执行了SELECT语句后的结果
建立连接后,查询语句会先去缓存中查询
缓存中命中,则直接返回结果
缓存未命中,则执行语句并将结果缓存,方便之后调用
注意:
一般不推荐使用缓存,因为CURD场景频繁时,缓存很容易失效;该功能在MySql8.0后被删除
4.分析器:缓存中未命中,SQL语句通过分析器
功能:检查SQL语句格式并解析SQL语句
首先分析SQL语句中的关键字,SELECT..FROM...WHERE..等,找到相关数据
其次分析SQL语句是否正确
5.优化器:MySql进行优化执行
功能:MySql按照优化方案执行
6.执行器:执行SQL语句并从存储引擎返回数据
功能:先查询用户权限
有权限:从存储引擎中返回执行结果
无权限:返回错误
7.SQL语句的执行过程
- SQL语句执行过程中,先判断是否有权限
- 有权限则先查询缓存,无权限返回错误信息
- 缓存未命中则经过分析器进行SQL解析与验证
- 经过分析器后找到相关数据(比如用到的表名、字段名),进入优化器确定优化方案
- 按照优化方案执行
- 执行完毕从存储引擎中将执行结果返回
文章来源地址https://uudwc.com/A/6X3r8