美文网首页
入门到入坟系列(一):MySQL基本框架

入门到入坟系列(一):MySQL基本框架

作者: codeMover | 来源:发表于2021-01-07 20:22 被阅读0次

MySQL基本框架概览

MySQL执行流程.png

简单介绍下上图中的各组件的作用。

  • Server:
    • 连接器:身份认证和权限相关
    • 分析器:包含此法分析和语法分析,生成一颗AST(抽象语法树)
    • 查询缓存:查询时优先查询缓存(8.0后移除)
    • 优化器:采用【RBO、CBO】方式优化sql
    • 执行器:SQL实际执行组件
    • Binglog:归档日志,执行器收到通知记录binlog,再调用存储殷勤接口
  • 存储引擎:
    • InnoDB:5.5以后默认存储引擎,支持事务
    • MyISAM:5.5以前默认存储引擎,不支持事务
    • MENORY:纯内存操作,效率高

分析器

以阿里巴巴的druid解析器为例,代表预发分析和词法分析的类分别是SQLParser和Lexer,并且Parser中拥有一个Lexer。经过词法分析和语法分析后,形成一颗抽象语法树(AST)。

优化器

RBO:Rule Based Potimizer 基于规则的优化器

RBO:RBO所用的判断规则是一组内置的规则,这些规则是硬编码在数据库的编码中的,RBO会根据这些规则去从SQL诸多的路径中来选择一条作为执行计划(比如在RBO里面,有这么一条规则:有索引使用索引。那么所有带有索引的表在任何情况下都会走索引)。目前Oracle默认是CBO,但仍然保留了RBO;MySQL只有CBO。

CBO:Cost Based Potimizer 基于成本的优化器

CBO:CBO会从目标诸多的执行路径中选择一个最小的执行路径作为执行计划。这里的成本它实际代表了MySQL根据相关统计信息计算出来目标SQL对应步骤的IO、CPU消耗。也就是意味着数据库里面的成本实际上就是对于执行目标SQL所需要的IO CPU等济源的一个估值,而成本值是根据索引、表、行的统计信息计算出来的。

附录

  1. 一条sql语句在mysql如何执行的
  2. SQL解析器解析过程
  3. MySQL优化器
  4. 存储引擎比较

相关文章

网友评论

      本文标题:入门到入坟系列(一):MySQL基本框架

      本文链接:https://www.haomeiwen.com/subject/ivjzoktx.html