数据库知识体系:SQL、MySQL、Redis、MongoDB 与 Elasticsearch
后端工程师的数据库能力往往决定系统上限。本文是数据库模块的学习地图:五组主题如何划分、彼此依赖关系是什么、按什么顺序学最省力。
主题分组
数据库模块可以分成五组:
- 基础概念:关系模型、范式、ER 图、事务、字符集、NoSQL 版图。这是所有后续内容的词汇表。
- SQL:查询、聚合、连接、子查询与语法基本功。会写不等于会优化,语义要能对应到执行过程。
- MySQL:索引、事务隔离、MVCC、三大日志(redo/undo/binlog)、执行计划、性能优化。后端面试与生产排障的核心区。
- Redis:数据结构与选型、缓存读写策略、穿透/击穿/雪崩、持久化、阻塞排查、集群。缓存层的工程化问题集中在这里。
- NoSQL 与搜索:MongoDB 的文档模型、索引、副本集、分片;Elasticsearch 的倒排索引与分片。按岗位需求补充。
依赖关系
基础概念 |
基础概念提供共同语言:不理解事务 ACID,就学不动隔离级别;不理解键与范式,就设计不好表。SQL 是进入 MySQL 内核的前提——看不懂执行计划,索引优化就是玄学。MySQL 的三大日志反过来支撑 Redis 的缓存一致性方案:旁路缓存、CDC 同步都建立在 binlog 之上。NoSQL 各产品相对独立,但选型判断依赖第一组里建立的模型与 CAP 认知。
推荐学习顺序
- 基础概念先行:读数据库基础、字符集、NoSQL 基础,建立词汇表与选型直觉。
- SQL 基本功:过一遍 SQL 语法总结,重点是把 WHERE、GROUP BY、HAVING、ORDER BY 的逻辑执行顺序想清楚。
- MySQL 主线:按「索引 → 执行计划 → 事务与隔离级别 → MVCC → 三大日志」推进,这条线能串起绝大多数面试题与慢查询排查。
- Redis 专题:数据结构与缓存策略先行,再深入持久化与集群;学习时不要背命令,要理解「为什么这么设计」。
- NoSQL 按需补充:先看 MongoDB 概览建立定位,再深入面试题上下两篇;ES 同理。
学完之后怎么巩固
每个主题配一个小实验:建表加索引看 EXPLAIN;开两个会话验证隔离级别;给缓存故意制造一次击穿;用 rs.status() 观察一次副本集切换。只看不动手,面试和排障都会卡壳。每学完一块,把「问题现象 → 底层机制 → 排查命令」连成一张图,复习效率会高得多。
还有一条容易被忽视的路径:故障复盘。慢查询、连接打满、主从延迟、缓存雪崩——每遇到一次线上问题,事后把它归到对应的知识组里,写明根因与处置命令。数据库能力由原理、工具、故障经验三部分构成,前两者可以自学,第三者只能靠积累。
小结
- 五组主题:基础概念、SQL、MySQL、Redis、NoSQL 与搜索。
- 顺序是「概念 → SQL → MySQL 内核 → Redis → NoSQL」,Redis 与 NoSQL 可视岗位调整先后。
- 理论配实验,是这个模块唯一有效的学法。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

