MySQL的架构

MySQl基础层

首先我们来看一下MySQl的架构图

可以看出MySQL的架构主要分为三个层次,

第一层的是客户端client,我们用来连接数据库

第二层的是server层,

第三层是存储引擎的层次,

SQL执行流程

首先客户端向mysqlserver发送一个连接请求,意味着mysqlserver这边需要提供连接,我们把提供连接的叫做连接器。连接器主要做一些权限认证,用户名,密码匹配等等校验。

验证成功之后,分析器会把要执行的SQL语句进行切分,(按照select from where 等关键字),进行语法分析,这两块最终会编程一个叫做AST抽象语法树。这个是有分析器完成的。

有了ast之后,会走到优化器。(mysql中的自带的优化,会对执行顺序进行一些优化)

实际中的优化有两种方式,一种是基于规则的RBO优化,一种是基于成本的CBO优化。

最后就会来到执行器,执行器就是我们用来和执行引擎进行数据交互。

优化的最终还是归结到IO问题上:

1.减少IO的量

2.减少IO的次数

posted @ 2021-07-26 09:13  IT小五  阅读(122)  评论(0)    收藏  举报