灯下哥谭 灯下哥谭
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

灯下哥谭

灯还亮着
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL8-SOP

  • 课程笔记

    • MySQL实战45讲

      • MySQL45讲学习笔记
      • MySQL基础架构
        • 1. MySQL 逻辑架构
        • 2. 主要组件功能
        • 3. 总结
      • MySQL日志系统 (Redo Log 与 Binlog)
      • MySQL事务隔离级别的实现原理
      • MySQL索引原理与优化
      • MySQL锁机制详解
      • MySQL事务与MVCC机制
      • MySQL普通索引与唯一索引的选择
      • MySQL优化器如何选择索引
      • MySQL字符串字段索引优化
      • MySQL抖动刷脏页
      • 表空间管理与回收
      • COUNT函数详解
      • 日志索引
      • orderby工作原理
      • 随机排序实现
      • SQL性能差异函数与转换
      • 慢查询分析锁与版本
      • 幻读与间隙锁
      • 加锁规则分析
      • 应急性能优化方法
      • 数据持久化保证
      • 主备一致性原理
      • 高可用架构与切换
      • 备库延迟分析与优化
      • 主备切换GTID
      • 读写分离实践与问题
      • 数据库健康检查
      • 锁与死锁
      • 数据误删恢复
      • Kill命令详解
      • 查询与内存使用分析
      • Join原理与选择
      • 临时表原理与应用
      • 内部临时表详解
      • Memory引擎详解
      • 自增ID详解
      • Insert加锁分析
      • 表复制方法比较
      • Grant与权限管理
      • 分区表详解
      • SQL语句中的Join问题
      • 自增ID用尽问题
  • 专题系列
  • 课程笔记
  • MySQL实战45讲
灯下哥谭
2024-07-27
目录

MySQL基础架构

# MySQL 基础架构

理解 MySQL 的基础架构有助于我们了解一条 SQL 查询语句是如何执行的。

# 1. MySQL 逻辑架构

SQL 语句在 MySQL 各个功能模块中的执行过程如下图所示:

MySQL逻辑架构图

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

  • Server 层:
    • 包括连接器、查询缓存(MySQL 8.0 已移除)、分析器、优化器、执行器等。
    • 涵盖了 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)。
    • 所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
  • 存储引擎层:
    • 负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。
    • 现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。
    • 我们执行 CREATE TABLE 建表的时候,可以通过 ENGINE=MyISAM 指定使用的存储引擎,不指定则使用默认引擎 InnoDB。

# 2. 主要组件功能

  • 连接器: 负责跟客户端建立连接、获取权限、维持和管理连接。
  • 查询缓存: (MySQL 8.0 已移除) 之前用于缓存查询结果,key 是查询语句,value 是查询结果。由于缓存失效非常频繁(只要表有更新,缓存即清空),命中率不高,因此在 8.0 版本被移除。
  • 分析器: 对 SQL 语句进行词法分析和语法分析,判断 SQL 语句是否正确。
  • 优化器: 在 SQL 语句执行前,决定使用哪个索引、表的连接顺序等,生成最优的执行计划。
  • 执行器: 根据优化器生成的执行计划,调用存储引擎的接口来执行 SQL 语句,返回结果。

# 3. 总结

一条查询语句的执行流程大致是:客户端通过连接器连接到 MySQL 服务器;如果查询缓存开启(8.0 前),先查询缓存;若未命中,则通过分析器进行语法分析;然后优化器生成执行计划;最后执行器调用存储引擎接口执行查询并返回结果。

#学习笔记#MySQL
上次更新: 9/11/2026

← MySQL45讲学习笔记 MySQL日志系统 (Redo Log 与 Binlog)→

最近更新
01
DeepSeek Harness 实战 06|学习笔记:插件、工具、技能不在同一个维度上 原创
09-11
02
DeepSeek Harness 实战 05|让两个编码 Agent 共用一份长期记忆 原创
09-09
03
DeepSeek Harness 实战 04|学习笔记:从「已知限制」里读出三处设计张力 原创
09-08
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式