基础架构:一条SQL查询语句是如何执行的


1

MySQL分为Server层和存储引擎层。

Server层包含:连接器、查询缓存、分析器、优化器、执行器以及所有内置函数。存储过程、触发器、视图等都在这一层。

存储引擎层:负责数据的存储和提取。目前最常用的是InnoDB。

连接器:负责跟客户端建立连接、获取权限、维持和管理连接。

可能有两种情况:1. 定期断开长连接;2.或者是重建连接

查询缓存:8.0之后就没有这个功能了。一般实现就是通过key(查询语句)value = 查询结果的方式来触发缓存。

分析器:词法分析:即把mysql的关键字识别出来,同时识别出来字段名、表名;语法分析:根据词法分析的结果,判断语法规则是否符合预期。

优化器:根据分析器的结果,知道了这个sql是可以执行了,但是这个sql执行过程是使用了哪个索引,或者是表关联的顺序,来选择他认为执行效率最高的执行方法。

执行器:打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。


文章作者: 冯廷鑫
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 冯廷鑫 !
  目录