Skip to content

一、MySQL 简介与架构 ​

如果把后续的索引、事务、锁和日志比作一栋楼里的不同房间,那么本章先给你一张楼层地图。学完后,你不需要记住所有内部组件,但应该能回答三个问题:

  1. MySQL 解决什么问题,它与 SQL、数据库分别是什么关系?
  2. 应用发送一条 SQL 后,MySQL 内部大致经过哪些步骤?
  3. 面对 MySQL 5.7、8.0 和 8.4 LTS,应该怎样做版本选择?

本章学习路线 ​

下面这张图不是完整的 MySQL 内核架构,而是初学阶段需要建立的认知顺序:

先理解 MySQL 的用途,再学习内部架构,最后讨论版本,能够避免一开始就陷入大量组件名称。

本章目录 ​

目录读完后能够回答
1、MySQL 是什么?为什么业务不能只把数据放在程序内存或普通文件中?
2、MySQL 体系架构一条 SELECT 语句从客户端到磁盘经历了什么?
3、MySQL 版本演进与选择新项目和存量系统分别应该怎样选择版本?

阅读前约定 ​

  • 本章面向第一次系统学习数据库的读者,只要求了解“表由行和列组成”。
  • 示例默认使用 MySQL 8.0,并说明 MySQL 5.7 与 8.4 LTS 的关键差异。
  • 默认存储引擎为 InnoDB。其他存储引擎只在需要对比时出现。
  • 命令输出属于示例,版本号、主机名和执行计划应以你的测试环境为准。
  • 本章只建立整体模型。索引、事务、日志等机制会在后续章节展开。

学习检查 ​

完成本章后,尝试不看正文回答:

  1. MySQL、数据库和 SQL 三者有什么区别?
  2. Server 层与 InnoDB 分别负责什么?
  3. 为什么 EXPLAIN 不能直接证明一条 SQL 实际执行得很快?
  4. 为什么新项目不应默认选择 MySQL 5.7?
  5. 为什么升级数据库前必须验证驱动、SQL、字符集和配置?

如果其中某一题无法解释清楚,请回到对应主题页,而不是继续记忆更多术语。

关联章节 ​

ICP 备案号待补充 · Gitee 主页