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

相关推荐
坐吃山猪4 分钟前
ChromaDB02-代码实战
数据库·向量数据库·chromadb
摇滚侠6 分钟前
MySQL 中 utf8mb4 字符集,字母a占几个字节,一个汉字占几个字节 / MySQL 中 utf8mb3 字符集,字母a占几个字节,一个汉字占几个字节
数据库·mysql
ChineHe12 分钟前
Redis数据类型篇001_数据类型梳理与选择指南
数据库·redis·缓存
Antoine-zxt16 分钟前
MySQL CPU飙升至500%的深度排查与优化实践
数据库·mysql
齐 飞19 分钟前
使用阿里云的MaxCompute查询sql时报错:DruidPooledPreparedStatement: getMaxFieldSize error
sql·阿里云·odps
Awkwardx20 分钟前
MySQL数据库—MySQL基本查询
数据库·mysql
夜流冰20 分钟前
Excel - MS Support for Excel: 2 Collaborate
数据库·windows·excel
轻微的风格艾丝凡27 分钟前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件
让你三行代码QAQ29 分钟前
MySQL全方位优化方案
mysql
Lonely丶墨轩1 小时前
从登录入口窥见架构:一个企业级双Token认证系统的深度拆解
java·数据库·sql