MySQL 执行流程是怎样的?

可以看到, MySQL 的架构共分为两层:Server 层和存储引擎层

  • Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现。
  • 存储引擎层负责数据的存储和读取。 InnoDB、MyISAM、Memory。不同的存储引擎共用一个 Server 层。

执行一条 SQL 查询语句,期间发生了什么?

  1. 连接器:客户端与mysql服务建立连接,获取用户权限,用于后续的权限校验;
  2. 查询缓存:连接成功之后,客户端可以发送sql语句,这个时候解析sql语句的第一个字段,如果是select 就会查询缓存。查询语句如果命中查询缓存则直接返回,否则继续往下执行。MySQL 8.0 已删除该模块;
  3. 解析 SQL:通过解析器对 SQL 查询语句进行词法分析、语法分析,然后构建语法树,方便后续模块读取表名、字段、语句类型;
  4. 执行 SQL:执行 SQL 共有三个阶段:
    • 预处理阶段:预处理器检查表或字段是否存在;将 select * 中的 * 符号扩展为表上的所有字段。
    • 优化阶段:选择成本最小的执行计划,就比如说表中有好几个索引,需要决定走哪条索引;
    • 执行阶段:执行器根据执行计划去执行 SQL 语句,与存储引擎进行交互,从存储引擎读取记录,返回给客户端;

更新语句执行流程如下:分析器---->权限校验---->执行器--->引擎---redo log(prepare 状态)--->binlog--->redo log(commit 状态)

相关推荐
破芽几秒前
mysql常用命令查询
数据库·sql·mysql
Rauser Mack7 分钟前
从交互困境到语音闭环:桌面AI全语音数字秘书架构解析
人工智能·架构·交互
程序员-Benothing7 分钟前
MySQL 中的 Log Buffer 是什么?它有什么作用?
数据库·mysql·面试
mldong19 分钟前
流程图上没画人,单子却走对了:工作流引擎内置处理人解析器
java·架构
jianqiang.xue3 小时前
ESP-IDF保姆级入门17|GPIO外部中断全解与工程化设计:分层架构/防抖策略/长按双击/优先级配置,掌握工业级可靠输入处理
stm32·单片机·物联网·架构·esp32
2601_962056233 小时前
易信easyMarkets:澄清诈骗疑问时更应关注官方出金流程
mysql
上学的小垃圾8 小时前
基于docker安装MySQL(openEuler系统)
linux·mysql·docker·容器
润乾软件9 小时前
SQLazy:分组累计求和
sql·sqlazy
hzxpaipai11 小时前
企业官网技术架构拆解:前端、后台、数据库、服务器如何协同
前端·数据库·架构
2601_9637491011 小时前
越华环保集团数字化污水治理:端边云采集架构与平台对接实现
java·大数据·架构