查询语句的执行流程如下:连接数据库,权限校验--->查询缓存--->分析器--->预处理器---->优化器--->权限校验--->执行器--->存储引擎
MySQL 的架构共分为两层:Server 层和存储引擎层,Server 层负责建立连接、分析和执行 SQL。存储引擎层负责数据的存储和提取。
1、连接数据库
- 通过连接器,客户端与服务器三次握手建立TCP连接
- 建立连接后,效验用户名和密码
- 用户名密码正确后,读取用户权限
2、去查询缓存里查找缓存数据,如果查询语句命中缓存则会直接返回查询结果给客户端。
查询缓存在一个表有update时候会清空,所以很鸡肋,mysql8.0删除了
3、解析器进行词法和语法分析
4、预处理器检查查询语句的表或者字段是否存在,以及将select * 的 * 扩展为所有的列
5、优化器确定查询语句的执行方案,可以使用explain + sql语句查看执行计划
6、执行器根据执行计划执行sql语句并返回结果给客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY