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

相关推荐
小菜同学爱学习12 小时前
进阶实操!MySQL常用查询技巧(多场景案例+优化思路)
数据库·mysql
Java面试题总结12 小时前
Spring AI 核心架构、抽象模型与四大核心组件设计精髓
人工智能·spring·架构
波波00712 小时前
每日一题:什么是CQRS,在微服务中如何应用
微服务·架构
考虑考虑12 小时前
SQL语句中的模糊查询注意
后端·sql·mysql
算力百科小智13 小时前
NVIDIA A100 GPU:基于 Ampere 架构的选型方法论
人工智能·架构·智星云·gpu算力租用·a100显卡
matlabgoodboy13 小时前
留学生计算机cs作业辅导java SQL数据库 c语言编程 软件工程辅导
java·数据库·sql
一江寒逸13 小时前
【30天做一个生产级RAG知识库系统】第8篇:并发优化与缓存设计,解决多用户访问崩服务的问题
缓存·架构
无忧智库13 小时前
智库级深度研判:数字中国浪潮下的医疗行业数字化转型与智慧医疗架构全景解构(PPT)
架构
努力努力再努力wz13 小时前
【MySQL入门系列】:不只是建表:MySQL 表约束与 DDL 执行机制全解析
android·linux·服务器·数据结构·数据库·c++·mysql
Chasing__Dreams13 小时前
Mysql--基础知识点--109--SERIALIZABLE事务隔离级别
数据库·mysql