MySQL 基础架构分层及各层职责

MySQL 基础架构分层及各层职责

概述

MySQL 的架构设计是面试高频题。理解其分层思想,能帮你快速定位问题、优化查询。整体上 MySQL 分为两层:Server 层存储引擎层

架构分层总览

graph TB
    Client[客户端连接]

    subgraph Server层
        Connector[连接器
连接管理/权限校验
] QueryCache[查询缓存
8.0已移除
] Parser[分析器
词法/语法分析
] Optimizer[优化器
索引选择/执行计划
] Executor[执行器
调用引擎接口
] end subgraph 存储引擎层 InnoDB[InnoDB] MyISAM[MyISAM] Memory[Memory] CSV[CSV] end Client --> Connector Connector --> QueryCache Connector --> Parser Parser --> Optimizer Optimizer --> Executor Executor --> InnoDB Executor --> MyISAM Executor --> Memory Executor --> CSV

各层职责

1. 连接器(Connector)

  • 负责与客户端建立连接
  • 验证用户名和密码
  • 查询当前用户的权限信息并缓存
  • 管理线程池 / 连接池

2. 查询缓存(Query Cache)

  • 缓存完整的 SELECT 语句及其结果
  • MySQL 8.0 已完全移除
  • 移除原因:表一旦有更新,缓存立即失效,命中率极低

3. 分析器(Parser)

  • 词法分析:解析 SQL 语句的每个词,识别关键字、表名、列名等
  • 语法分析:检查 SQL 语法是否符合 MySQL 语法规则
  • 输出:解析树(Parse Tree)

4. 优化器(Optimizer)

  • 决定使用哪个索引
  • 决定表的连接顺序
  • 生成执行计划
  • 核心目标:选择成本最低的执行路径

5. 执行器(Executor)

  • 根据执行计划调用存储引擎接口
  • 逐行判断是否符合 WHERE 条件
  • 将结果返回给客户端

6. 存储引擎层

  • 负责数据的存储和读取
  • 支持插件式架构
  • 每个表可以选用不同的引擎

一条查询语句的完整流程

SELECT * FROM user WHERE id = 1;
  1. 连接器:验证权限,建立连接
  2. 分析器:解析 SQL,生成解析树
  3. 优化器:决定使用主键索引 id
  4. 执行器:调用 InnoDB 接口,根据 id=1 查到数据并返回

面试要点

  • 分层核心意义:Server 层与存储引擎层解耦,让存储引擎可插拔
  • 8.0 架构变化:移除查询缓存,增加数据字典(Data Dictionary)
  • 一条 SQL 经过的组件:连接器 → 分析器 → 优化器 → 执行器 → 引擎

一句话总结:MySQL 的架构分层实现了”逻辑处理与存储分离”,这是它支持多种存储引擎的基础。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容