3 月,跳不动了?>>> 执行流程简介 主要分为server层和存储引擎层。 server层主要分为:连接器、解析器、优化器、执行器、查询缓存 连接器:主要作用就是用户认证、给用户创建连接并使用连接池维护连接。 查询缓存:建立连接之后,就可以进行SQL操作了,如果该SQL语句在查询缓存中可以匹配到,则不需要找后面的模块了,但是查询缓存不建议使用。查询缓存中缓存的记录,如果对于的表发生写操作,那么这些记录都会从缓存中删除。在MySQL8以后,该功能直接去除掉了。在查询缓存中,key就是SQL语句,value是对应的结果。 解析器:词法解析、语法解析。 词法解析:根据空格将SQL语句拆分。拆分出来SQL关键字和非关键字(表、列) 语法解析:将SQL进行语法校验,是否符合SQL92标准或者MySQL的语法标准。并且在此处分析是DDL、还是DML、还是DQL语句。 优化器:优化索引,在此时会选择一个索引使用。并且在此时形成执行计划(如何使用索引、如何多表关联)。 执行器:按照优化之后的SQL,去调用存储引擎层,完成对应的操作。 存储引擎层:是真正和数据的读写有关系的。存储引擎是MySQL模块中真正和物理磁盘进行交互的部分。而存储引擎在MySQL中是采用插件式方式的。 客户端: select * ftom t where id = 1; 服务端: 调用连接器,去用户认证、建立连接