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

相关推荐
数据库小学妹6 小时前
为什么MySQL索引用B+树?从存储底层讲透原理
数据库·mysql·b+树·索引优化·磁盘io·数据库原理
BestHeaker6 小时前
制造业 MES 开发入门:和互联网业务开发的 5 个本质差异(一)
数据库·经验分享·制造业·mes
自动化监测Learner8 小时前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
张文是假的啊8 小时前
常用JPA注解解释
数据库
Allen_LVyingbo9 小时前
医疗AI基础2026-构建可靠智能体的编程路径(上)
大数据·数据库·人工智能·python·自动化
疯狂打码的少年9 小时前
【数据库技术】多值依赖与第四范式(4NF)
数据库·笔记·算法
微软技术分享9 小时前
Ubuntu 本地部署Ollama+OpenWebUI教程
数据库·ubuntu·postgresql
ly768910 小时前
MySQL 自增主键耗尽:从原理到应急恢复
数据库·mysql·innodb·故障恢复·自增主键·主键设计
文人sec10 小时前
MySQL主库出问题了,从库怎么办?备库为什么会延迟好几个小时?
android·数据库·mysql