MySql 学习笔记-Mysql架构介绍与查询sql执行流程
最近花了99元大洋在极客时间 买了 MySQL 实战45讲。学习的同时留下点笔记。该内容仅仅是个人总结笔记,如有涉及版权还请告知。
MySql 的简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。-摘抄自百度百科。
MySql 基础架构
既然MySQL 是数据库管理系统。那它可定有其系统架构,MySQL 基础架构主要分为2部分:
server层 和 存储层
1. Server层
在我们的Server层中在进行具体的细分具体包含 连接器 查询缓存 分析器 优化器 执行器。
1.1. 连接器
如下图所示连接我们本地MySql数据库的操作,这个操作就是连接器来完成的
连接器负责与客户端建立连接,管理连接的时长。我们可以理解成登录mySql 根据登录的用户信息分配给该用户已经配置的权限。
1.2. 查询缓存
如果配置了查询缓存的话,我们查询会先看缓存中是否有我们查询的数据,如果没有则查询存储引擎中的数据,返回后将数据放入到缓存中。下次再查询的时候就直接取缓存中的数据。
1.3. 分析器
如果配置了查询缓存的话,如果没有命中缓存接下来就我们的分析器上场了。分析器主要是分析sql语句要做什么操作和校验sql语句的语法是否有错误。
1.4. 优化器
当sql语法并没有错误时分析器后就会执行到我们的优化器,优化器它额可以根据我们sql语句写法来判断执行那个索引,它其实就是在执行前的优化处理操作。
1.5. 执行器
当经过分析器和优化器后我们知道了要做什么和具体做的事情的处理方式后就开始真正的去执行我们的增删改查其中之一的操作。也可以理解成去处理存储引擎的数据。
2. 存储层
存储层主要就是存储引擎。主要负责数据的存储。
查询语句执行流程
没有命中缓存执行流程图
命中缓存执行流程图
没有配置缓存的执行流程图