阶段四 · 数据库与中间件(本课导读)

课程定位:学会「存数据、传数据、解耦系统」。数据库是几乎所有系统的地基,中间件是现代后端架构的骨架。 前置条件:阶段三(尤其算法里的 B+ 树、网络里的 TCP)。 时长建议:2~3 个月。


一、开场案例:为什么查询从 1 秒变成 1 分钟?

小白问老师:「老师,我们的订单表才 500 万行,为什么一个查询要 1 分钟?老板天天催。」

老师反问:「你写的查询是 SELECT * FROM orders WHERE user_id = 123 吗?」

小白:「对啊。」

老师:「这张表建索引了吗?」

小白:「索引?那是什么?我以为表就是表……」

老师:「这就对了。没有索引的表,MySQL 只能『全表扫描』——500 万行一行行翻,就像你在没有目录的 500 万页书里找一句话。建了索引,就像给书加了个『拼音目录』,直接翻到那一页。加一个索引,这个查询从 60 秒变 0.01 秒。」

小白:「一个索引差 6000 倍?!那数据库的学问可大了。」

老师:「对。数据库是『用细节换性能』的艺术:索引、缓存、分库分表、读写分离、事务隔离……你以后遇到的 80% 后端面试题,都在这个阶段。而且——你记得阶段三学的 B+ 树吗?MySQL 索引的底层就是它。」

案例启示:某电商大促当晚数据库 CPU 打满,紧急排查发现:一个没加索引的关联查询 + 一个没走索引的模糊查询在打架。懂索引的人 10 分钟解决,不懂的人只能眼睁睁看着系统挂掉。这就是数据库内功的价值。


二、这一阶段学什么?

模块对应课程核心收获
关系型数据库MySQL 实战 45 讲 ★、MySQL 必知必会、SQL 必知必会建表、索引、事务、锁、优化
缓存Redis 核心技术与实战 ★缓存、数据结构、分布式锁、高可用
消息队列Kafka 核心技术与实战 ★、消息队列高手课、深入拆解消息队列 47 讲异步、解耦、削峰、消息可靠性
搜索Elasticsearch 核心技术与实战全文检索、倒排索引
文档库MongoDB 高手课灵活 schema 的 NoSQL
分布式协调etcd 实战课、中间件核心技术与实战配置中心、服务发现

三、怎么学最有效?

  1. MySQL 是主线,必须吃透:事务、索引、锁、日志(binlog/redo log)四大块,每一个都值得反复琢磨。
  2. Redis 是第二主线:先搞懂「为什么快」,再学五种数据结构,再学持久化、集群、分布式锁。
  3. MQ 和 ES 理解「解决问题的方式」:MQ 解决「异步/削峰/解耦」,ES 解决「搜索」,不必钻太深源码。
  4. 动手练习:装个 MySQL,自己建表、造 100 万条数据、练索引优化;装个 Redis,跑一遍五种数据结构;装个 Kafka,写个生产者消费者。数据库和中间件,光看永远学不会。

四、学完检验(自测清单)

  • 能解释索引为什么快(B+ 树)、什么情况索引失效
  • 能说出事务四大特性 ACID 和四种隔离级别,以及各自的问题
  • 能解释 MySQL 为什么用 B+ 树而不是 B 树 / 红黑树 / 哈希
  • 能说出 Redis 五种数据结构及典型场景,能解释持久化 RDB/AOF
  • 能解释「为什么用消息队列」以及如何保证消息不丢、不重
  • 能说出 ES 的倒排索引是什么、为什么快

全打勾,进入 05_阶段五_后端开发工程/。