1.客户端:客户端(如MySQL命令行工具、Navicat、MySQL Workbench或其他应用程序)发送SQL查询到MySQL服务器。 2.连接器:连接器负责与客户端建立连接、管理连接和维护连接。当客户端连接到MySQL服务器时,连接器验证客户端的用户名和密码,然后分配一个线程来处理客户端的请求。 3.查询缓存:查询缓存用于缓存先前执行过的查...
先检查该语句是否有权限,如果没有权限,直接返回错误信息,如果有权限,在 MySQL8.0 版本以前,会先查询缓存,以这条 sql 语句为 key 在内存中查询是否有结果,如果有直接缓存,如果没有,执行下一步。 通过分析器进行词法分析,提取 sql 语句的关键元素,比如提取上面这个语句是查询 select,提取需要查询的表名为 tb_stude...
③:进入mysql的分析器,分析sql语句是否符合mysql规范。 ④:进入sql优化器,mysql底层优化sql,比如调换索引列等。 ⑤:进入执行器,执行sql。 三:innoDB引擎层 mysql服务层后边连接了很多引擎层,如MyIsam、innoDB等,这里只分析innoDB引擎。 ⑥:加载磁盘上id为1的整页数据到 buff pool缓存池中,此时buff pool中的name值...
我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MyS...
一条更新语句完整流程图如下所示: 步骤: 一:客户端层 ①:mysql的客户端执行sql update t set name = ‘zhuge666’ where id = 1; id为1的name原来的值是zhuge。 二:mysql服务器层 ②: 进入mysql服务器,由连接器验证账号密码等身份信息,验证通过去查mysql缓存,如果有,直接返回。没有进入分析器。 ③:进....