01-SQL语言

作者: 紫荆秋雪_文 | 来源:发表于2021-05-06 10:39 被阅读0次

    一、MySQL发送SQL请求执行流程 MySQL发送SQL请求执行流程.png

    • 1、客户端发送一条\color{#DC143C}{SQL语句}\color{#DC143C}{MySQL服务器}
    • 2、MySQL服务器先检查 \color{#DC143C}{查询缓存},如果\color{#DC143C}{查询缓存}中存在待查询的结果数据,则会立刻返回查询缓存中的结果数据,否则执行下一阶段的处理
    • 3、MySQL服务器通过 \color{#DC143C}{解析器}\color{#DC143C}{预处理器}对SQL语句进行解析和预处理,并将生产的SQL语句解析树传递给\color{#DC143C}{查询优化器}
    • 4、\color{#DC143C}{查询优化器}\color{#DC143C}{SQL解析树}进行进一步处理,生成对应的执行计划
    • 5、MySQL服务器根据\color{#DC143C}{查询优化器}生成的执行计划,通过\color{#DC143C}{查询执行引擎}调用存储引擎的API来执行查询操作
    • 6、\color{#DC143C}{存储引擎}查询数据库中的数据,并将结果返回给查询执行引擎
    • 7、\color{#DC143C}{查询执行引擎}将结果保存在查询缓存中,并通过数据库连接/线程处理返回给客户端

    1.1、查询缓存

    MySQL内部的缓存区域,保存查询返回的完整结构,当查询命中缓存时,MySQL会立刻返回结果数据,不再执行后续的解析、优化和执行操作

    1.2、解析器

    能够通过SQL关键字和SQL语法规则对SQL语句进行解析,并生成对应的SQL语句解析树

    1.3、预处理器

    根据MySQL的相关规则,对解析器生成的SQL语句解析树进行进一步的校验,比如检查数据库中的数据表是否存在,数据表中的数据列是否存在。再比如,如果SQL语句中使用了别名,还会对别名进行校验,检查别名是否存在重名和歧义等

    1.4、查询优化器

    根据一定的规则将SQL语句解析树转化成查询性能最好的执行计划

    1.5、查询执行引擎

    根据查询优化器生成的执行计划完成整个数据查询的过程

    相关文章

      网友评论

        本文标题:01-SQL语言

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