文章目录
- 前言
- 流程图
- 概述
- 最后
前言
你好,我是醉墨居士,今天我们一起探讨一下执行一条查询的SQL语句在MySQL内部都发生了什么,让你对MySQL内部的架构具备一个宏观上的了解
流程图
概述
对于查询语句的SQL的执行流程,主要可以分为5个大步骤
- 客户端通过与MySQL服务端维持长连接,提交一条查询的SQL语句
- MySQL服务端接收到后首先查询缓存,如果缓存中存在记录则直接返回结果
- 缓存中不存在记录的话,将SQL语句交给解析器,经过解析内部的词法解析、语法解析最终生成抽象语法树(AST)
- 预处理器对语法树进行将select * from xxx中的 * 转换成对应的列名,将别名转换成真实指代的名称等等
- 优化器对SQL的执行进行优化,例如检查SQL的执行能否利用索引进行加速,最终生成一个查询代价最小的执行计划
- 执行器执行执行计划,从存储引擎读取数据,最终返回结果,并进行缓存
最后
好的,朋友们,我们目前对MySQL中查询语句的执行有了一个总体的认知,后续我还会发布更多关于MySQL原理的博客,希望大家多多支持,多多捧场😊