MySQL 学习笔记(一):体系结构与核心组件

6 阅读2分钟

MySQL 的核心设计哲学是:大脑(逻辑处理)与肢体(物理存取)分离


第一层:连接层 (Connection Layer) —— 【门卫与准入】

这是所有请求进入 MySQL 的第一道关卡。

  • 主要组件:连接池 (Connection Pool)

  • 组件作用

    1. 身份认证:验证你的用户名和密码。
    2. 权限核实:判断你有没有权限操作你要查的那张表。
    3. 连接管理:维持你和数据库之间的这条“线”,不用每次传数据都重新握手。
  • 💡 理解要点:它像超市的入场闸机,负责验票和挡住没有权限的人。


第二层:服务层 (Server Layer) —— 【大脑与调度】

  • 组件一:解析器 (Parser)

    • 作用词法与语法分析。它会把你的 SQL 语句拆解成一棵“解析树”,检查有没有语法错误(比如 SELECT 写成了 SELEC)。
  • 组件二:优化器 (Optimizer) —— 【灵魂大脑】

    • 作用制定路线图。如果表中有多个索引,优化器会计算出哪种路径最省钱、最快。它决定了 SQL 的最终执行效率。
  • 组件三:执行器 (Executor)

    • 作用下达任务。它拿着优化器的“方案”,去调用底层存储引擎的 API 接口来获取数据。
  • 💡 形象理解:它是参谋部。解析器是翻译官,优化器是军师,执行器是传令官。


第三层:引擎层 (Storage Engine Layer) —— 【仓库与搬运】

这是 MySQL 最具特色的地方,采用的是“插拔式”设计。

  • 核心组件:InnoDB (默认引擎)

    • 作用:真正执行读写操作。
    • 核心功能:支持事务(保证转账安全)、行级锁(提升并发,只锁那一行)、外键
  • 备选组件:MyISAM、Memory 等

    • 作用:根据业务需求更换。有的引擎读得快但怕丢数据,有的引擎存内存速度飞起。
  • 💡 理解要点:它是仓库管理员。不同的管理员有不同的专长(有的快、有的稳、有的省空间)。


📝 总结:组件如何串联?

通过一次 SELECT 查询,看清组件的联动:

  1. 连接层:确认你是个合法的用户。
  2. 服务层(解析器) :看清你确实是要查数据,且 SQL 没写错。
  3. 服务层(优化器) :算了一下,走“主键索引”最快,生成方案。
  4. 服务层(执行器) :拿着方案,去敲引擎层的门。
  5. 引擎层(InnoDB) :去磁盘把货提出来,交给执行器。

💡 核心设计思想:解耦

MySQL 将 “怎么处理请求 (Server层)”“怎么存取数据 (引擎层)” 完全分开。

  • 好处:无论底层仓库怎么变(换了存储介质或引擎),上层的业务大脑完全不受影响。