一条SQL查询语句是如何执行的?( 二 )

mysql> select * from T where ID=10;

我们看到的只是输入一条语句 , 返回一个结果 , 却不知道这条语句在 MySQL 内部的执行过程 。

所以今天我想和你一起把 MySQL 拆解一下 , 看看里面都有哪些“零件” , 希望借由这个拆解过程 , 让你对 MySQL 有更深入的理解 。 这样当我们碰到 MySQL 的一些异常或者问题时 , 就能够直戳本质 , 更为快速地定位并解决问题 。

下面我给出的是 MySQL 的基本架构示意图 , 从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程 。

MySQL 的逻辑架构图

大体来说 , MySQL 可以分为 Server 层和存储引擎层两部分 。

Server 层包括连接器、查询缓存、分析器、优化器、执行器等 , 涵盖 MySQL 的大多数核心服务功能 , 以及所有的内置函数(如日期、时间、数学和加密函数等) , 所有跨存储引擎的功能都在这一层实现 , 比如存储过程、触发器、视图等 。

推荐阅读