一、MySQL 简介与架构
如果把后续的索引、事务、锁和日志比作一栋楼里的不同房间,那么本章先给你一张楼层地图。学完后,你不需要记住所有内部组件,但应该能回答三个问题:
- MySQL 解决什么问题,它与 SQL、数据库分别是什么关系?
- 应用发送一条 SQL 后,MySQL 内部大致经过哪些步骤?
- 面对 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。其他存储引擎只在需要对比时出现。
- 命令输出属于示例,版本号、主机名和执行计划应以你的测试环境为准。
- 本章只建立整体模型。索引、事务、日志等机制会在后续章节展开。
学习检查
完成本章后,尝试不看正文回答:
- MySQL、数据库和 SQL 三者有什么区别?
- Server 层与 InnoDB 分别负责什么?
- 为什么
EXPLAIN不能直接证明一条 SQL 实际执行得很快? - 为什么新项目不应默认选择 MySQL 5.7?
- 为什么升级数据库前必须验证驱动、SQL、字符集和配置?
如果其中某一题无法解释清楚,请回到对应主题页,而不是继续记忆更多术语。
关联章节
- 下一章:二、安装、连接与基础配置
- 深入存储:八、存储引擎与 InnoDB 基础
- 深入执行:十三、执行计划与 SQL 优化
- 统一术语:MySQL 术语表
