资讯动态

MySQL 中一条查询 SQL 是执行流程

发布时间:2026/9/11 10:56:05 来源:尧图企业网站定制
开发过程中经常使用mysql比如进行记录查询。不过很多人不清楚类似select age from t_person where id1 是怎样执行的。下面为大家一起解剖这个问题。一、mysql的架构如上图mysql分为Server层和存储引擎层。server层包括了mysql的大多数的核心服务、全部的内置函数以及跨存储引擎的功能存储过程、触发器、视图。而存储引擎层则主要负责数据的存储以及提取架构模式是插件式的InnoDB、MyISAM等等常用的是InnoDB这种存储引擎。二、查询语句的执行流程1、取得连接使用mysql的连接器。连接器用于与客户端建立连接、获取用户权限、维持和管理连接。获取到权限后在本次连接过程中权限是不会被改变。2、查询缓存mysql接收到一个查询请求后会先到查询缓存。key 为 SQL 语句value 为查询结果如果查到就直接返回。不建议使用缓存在 MySQL 8.0 版本已经将查询缓存删除也就是说 MySQL 8.0 版本后不存在此功能。3、分析器分为词法分析和语法分析。此阶段只是做一些 SQL 解析语法校验。所以一般语法错误在此阶段。此阶段是要干什么。4、优化器当表里有多个索引的时候决定使用哪个索引或者一个语句中存在多表关联的时候join决定各个表的连接顺序。此阶段确定该怎么做。5、 执行器开始执行语句。执行语句的时候还要判断是否具备此权限没有权限就直接返回提示没有权限的错误有权限则打开表根据表的引擎定义去使用这个引擎提供的接口获取这个表的第一行判断 id 是都等于 1。如果是直接返回如果不是继续调用引擎接口去下一行重复相同的判断直到取到这个表的最后一行最后返回。三、总结一条简单的sql在MYSQL服务中需要完成上述五步才能正常得到结果。当中查询缓存这步骤因其失效频繁只要相关的表有更新就会缓存记录就会被清空因此不建议使用甚至高版本的8.0以后查询缓存模块被删除了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价