美文网首页
入门到入坟系列(一):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