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 状态)

相关推荐
蜂蜜黄油呀土豆6 小时前
深入理解 MySQL 架构:主从复制、延迟治理与分库分表设计
mysql·binlog·分库分表·主从复制·高并发系统设计
GIOTTO情6 小时前
技术深度解析:Infoseek 字节探索媒体发布系统的核心架构与实现逻辑,重构企业级媒体发布的技术天花板
重构·架构·媒体
济南壹软网络科技有限公司7 小时前
IM源码架构深度解析:构建高并发、私有化的企业级通讯底座
java·架构·即时通讯源码·通讯im·企业级im
风月歌7 小时前
基于小程序的超市购物系统设计与实现源码(java+小程序+mysql+vue+文档)
java·mysql·微信小程序·小程序·毕业设计·源码
阿坤带你走近大数据7 小时前
Oracle中如何监控SQL执行时间?
数据库·sql·oracle
神算大模型APi--天枢6467 小时前
国产大模型后端开发与部署实战:从算力架构到行业规模化落地
大数据·运维·服务器·人工智能·架构
q行7 小时前
MySQL学习日志--表之间的关系
数据库·学习·mysql
麦麦鸡腿堡7 小时前
MySQL_INSERT UPDATE DELETE语句
数据库·mysql
老李四7 小时前
深入理解MySQL事务:特性、原理与实践
数据库·mysql
洋生巅峰7 小时前
股票爬虫实战解析
爬虫·python·mysql