1.一条select语句执行流程

发布时间 2023-11-17 09:30:41作者: 求知律己

一条SQL语句查询过程

  一条SQL执行过过程会经过连接器、查询缓存、解析器、执行器以及存储引擎等组件,执行过程图(仿小林coding)如下:

  MYSQL架构分为Server层存储引擎层Server层负责建立连接分析和执行SQL存储引擎负责数据的存储和提取

连接器:TCP三次握手建立连接校验用户名和密码校验权限

查询缓存:SQL需分毫不差才能从查询缓存中查询结果

词法解析:检查SQL中关键词是否存在,如from、where、group by 、having、select、order by、limit

语法解析:检查SQL语句是否存在问题

预处理器:确定表或字段是否存在;将select *中的* 扩展为表上的所有列

优化器:确定SQL语句的执行方案,即表中存在多个索引时,决定使用哪个索引。可在查询语句前加上explain查看SQL语句执行过程中,possible keykey以及type字段的值。进而分析SQL语句查询过程中的执行计划和优化过程

执行器:主键索引查询全表扫描索引下推