一条 SQL 语句是如何执行的?
首发于 GitHub 开源项目: Java超神之路 整理好的 Java 技术栈全套学习资料,欢迎 star!
你好,我是杜少雄。
今天和大家聊一聊 MySQL 的基础架构。我们经常说,看一个事千万不要直接陷入细节里。应该先鸟瞰全貌。这样能够帮助你从高维度理解问题。当一条 SQL 语句执行的时候,我们看到的是最后的执行结果。却不知道这条语句在 MySQL 内部是如何执行的。
总览
所以今天我们把 MySQL 拆解一下,看看里边有哪些零件。下边是 MySQL 的基本架构示意图。
大体来说,MySQL 分为 Server 层和存储引擎两部分。
Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB&