image.png

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

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

    组件 作用
    连接器 负责跟客户端建立连接、获取权限、维持和管理连接
    查询缓存 命中则直接返回结果
    分析器 词法分析、语法分析
    优化器 表中有多个索引时,决定选择哪个索引;一个语句有多表关联(join)时,决定表的连接顺序
    执行器 开始执行语句,判断对表有没有执行查询权限;有权限则,打开表继续执行,根据表的引擎定义,去使用这个引擎提供的接口