MySQL一条SQL语句的执行过程

例:SELECT * FROM USERS WHERE age = '18' AND name = 'student';

执行过程如下图:

综合上面的说明,我们分析下这个语句的执行流程:

1、使用连接器通过客户端/服务器通信协议与MySQL建立连接,并查询是否有权限。

2、MySQL8.0之前检查是否开启缓存,开启了Query Cache且命中完全相同的SQL语句,则将查询结果直接返回给客户端。

3、解析器(分析器) 进行语法分析和语义分析,并生成解析树。如查询是select、表名是users、条件是age='18' AND name='student',预处理器则会根据MySQL规则进一步检查解析树是否合法。比如检查要查询的数据表或数据列是否存在等。

4、优化器生成执行计划,根据索引看看是否可以优化。

5、执行器来执行SQL语句,这里具体的执行会操作MySQL的存储引擎来执行SQL语句,根据存储引擎类型得到查询结果,若开启了Query Cache则缓存,否则直接返回。

参考:Hollis

相关推荐
杨云龙UP5 小时前
Oracle 19c 单机环境安装目录规划与磁盘永久挂载操作指南_2026-06-15
运维·服务器·数据库·oracle·部署·目录·规划
JOJO数据科学5 小时前
DbGate Electron 鸿蒙 PC 适配全记录:从桌面数据库工具到 OpenHarmony HAP
数据库·electron·harmonyos
初圣魔门首席弟子5 小时前
AI Agent 核心原理:工具调用(Function Calling)完整工作流程详解
前端·数据库·人工智能
半夜修仙5 小时前
延迟队列的介绍及常见问题
java·数据库·中间件·rabbitmq
herinspace5 小时前
管家婆云辉煌开单优化
服务器·数据库·电脑·管家婆软件·财务软件
码云骑士6 小时前
24-Django请求全链路-WSGI到数据库响应的完整旅程
数据库·python·django
霖霖总总6 小时前
[MongoDB小技巧09]深入浅出 MongoDB 逻辑运算符:$and、$or、$nor、$not 原理与实战
数据库·mongodb
小丶舟6 小时前
MiMo Code实测:5场景对标Claude Code,3个踩坑与选型指南
数据库·人工智能·数据挖掘
z_鑫6 小时前
深入理解MyBatis:collection集合封装的底层原理与实现细节
java·开发语言·数据库·spring boot·mybatis
lazy H6 小时前
Spring Boot 连接 MySQL 失败怎么办?常见报错原因和解决方法总结
spring boot·后端·学习·mysql·spring