数据库路线:SQL 到 DBA 与数据工程
数据库方向 12 个月路线:SQL 精通、MySQL 与 PostgreSQL 双栈、Redis 缓存、备份恢复与高可用、性能调优,三阶段计划与四个检验项目。
岗位画像
数据库方向的岗位分三层:应用开发者的数据库技能层(所有后端岗位的必考项)、专职 DBA(运维数据库:调优/备份/高可用/故障处理)、数据工程(数据管道与仓库)。2026 年趋势:云托管数据库让”手工运维 DBA”收缩,但**“懂数据库内核与调优的开发者/平台工程师”溢价上升**;PostgreSQL 在 AI 向量检索(pgvector)带动下持续扩张,与 MySQL 双栈人才最抢手。
本路线定位:以后端级数据库功力为底座,向 DBA 或数据工程延伸。适合人群:严谨细致、喜欢和数据与性能较真的人。产物:一套双数据库的调优报告加一个高可用数据平台。
技能树
flowchart TD
A[SQL 精通] --> B[MySQL: 引擎/索引/事务]
A --> C[PostgreSQL: 特性/扩展]
B --> D[性能调优与执行计划]
C --> D
D --> E[备份恢复与高可用]
E --> F[Redis 缓存体系]
F --> G[作品集与求职]
B --> H[加分项: 分库分表/向量检索]
C --> H必学主线:SQL → MySQL → PostgreSQL → 调优 → 高可用 → Redis。加分项:分库分表、pgvector、数据库内核认知。
阶段 1(第 1 到 3 个月):SQL 与 MySQL 地基
第 1 到 2 个月:SQL 精通
- SQL 模块 全读:从环境与首查,到多表连接、聚合、子查询、窗口函数;
- 练习平台策略:每天 2 到 3 题(LeetCode 数据库题 + sqlzoo 类练习),累计 100 题以上;
- 动手:装 MySQL,导入一个真实规模数据集(如公开的订单数据,百万行级),所有练习在真数据上做——小数据练语法,大数据才见性能。
第 3 个月:MySQL 体系化
- MySQL 模块 核心:存储引擎(InnoDB 结构)、索引原理(B+ 树、聚簇与二级索引、覆盖索引)、事务与隔离级别、锁机制;
- 检验项目一:索引设计实战报告——给百万行订单库设计索引方案,10 个典型慢查询的 EXPLAIN 前后对比,含”为什么这么设计”的推导(选择性、最左前缀、回表成本)。
阶段 2(第 4 到 6 个月):PostgreSQL 与调优
第 4 个月:PostgreSQL 双栈
- PostgreSQL 模块 核心:MVCC 实现(与 InnoDB 对比)、VACUUM 机制、丰富索引类型(B-tree/GIN/GiST/部分索引)、JSONB、扩展生态;
- 动手:同一数据集迁入 PostgreSQL,把 MySQL 的 10 个查询翻译过来,写双库行为对比笔记(隔离级别实现差异、EXPLAIN 输出差异、JSON 处理差异)——双栈视角是面试的强差异化。
第 5 个月:性能调优体系
- 慢查询治理流程:慢日志 → 执行计划 → 索引/SQL 改写 → 参数层面(内存配置、连接池 PgBouncer/ProxySQL 认知);
- Redis 模块 缓存体系:数据结构场景化、缓存穿透/击穿/雪崩、与数据库的一致性策略;
- 检验项目二:调优工程包——一个故意劣化的应用(可自写或改造开源 demo),完成:慢日志定位、五处优化(索引两处、SQL 改写一处、缓存一处、参数一处)、压测前后对比报告(QPS 与 P99 提升倍数)。
第 6 个月:备份恢复与高可用
- 备份:mysqldump/xtrabackup 认知、pg_basebackup、时间点恢复(PITR);恢复演练比备份本身重要;
- 高可用:主从复制原理、半同步、MGR/ Patroni 认知、故障切换流程;
- 检验项目三:灾难恢复演练报告——搭建主从复制,人为删库,用备份 + binlog 恢复到删除前一刻,全程录像并写成 runbook。
阶段 3(第 7 到 12 个月):纵深与求职
第 7 到 8 个月:分库分表与规模化
- 读写分离接入、分库分表方案(ShardingSphere 认知级)、分布式 ID、跨分片查询的代价与取舍;先问”真的需要分库分表吗”(多数业务到不了),方案设计题是重点;
- pgvector 向量检索实践(结合 AI 数据场景);
- 数据工程视角:一条 ETL 管道(业务库 → CDC(binlog/逻辑解码)→ 分析库),认知级实现。
第 9 到 10 个月:检验项目四(作品集主项目)
双栈数据平台:一个完整的”数据库即服务”迷你平台(自用级)——Docker Compose 编排 MySQL 主从 + PostgreSQL 主从 + Redis + 监控(mysqld_exporter/postgres_exporter + Prometheus + Grafana 看板)+ 备份定时任务与恢复脚本 + 一份包含 SLO、容量规划、故障预案的运维手册。附:三个真实故障案例的完整复盘(现象、定位、根因、改进)。
第 11 到 12 个月:求职冲刺
- 复习地图:索引与执行计划(手画 B+ 树)、事务与 MVCC、锁与死锁排查、日志体系(redo/undo/binlog)、Redis 原理、双库差异、分库分表设计题;
- 手写 SQL 强化:窗口函数、分组 TopN、连续问题类,让 AI 出题并限时;
- 项目深挖:让 AI 按”为什么选这个隔离级别""恢复到一半 binlog 坏了怎么办”连环追问;
- 简历量化:QPS/P99 提升倍数、恢复时长、空间节省。
动手验证:开始前的两周摸底
路线启动前做一次摸底,目的有二:确认自己当前的起点(完全零基础还是有 SQL 经验),并把「要不要走这条路」的判断交给动手结果而不是想象。三个任务,两周内完成:
- 手写一份 EXPLAIN 解读(任务量约 3 小时)。 装好 MySQL,导入任意一张 10 万行以上的表,跑一条
SELECT ... WHERE加ORDER BY的查询,对输出做逐列解读:type 是多少、key 用了哪个索引、rows 估算多大、Extra 里出现了什么。提示:先把EXPLAIN换成EXPLAIN FORMAT=JSON再看一遍,两份输出对照,能看出优化器视角与人读视角的差别。卡点记录下来——阶段 1 的第一课就会逐一回应这些卡点。 - 做一次”删库恢复”沙盘(任务量约 4 小时)。 本机起一个 Docker MySQL,建库写数据,
mysqldump做全量备份,然后写入一批新数据,最后故意DROP TABLE,用全量备份加 binlog 恢复到删除前的状态。提示:恢复的关键是mysqlbinlog的--start-position与--stop-position参数,先在测试库练熟定位方法。做不完不要紧——这个任务的意义是让你提前体验到「备份」与「恢复」之间的巨大鸿沟,它就是本路线阶段 2 的核心命题。 - 写一篇 200 字的方向备忘录(任务量约 30 分钟)。 回答一个问题:我为什么选数据库而不是直接做后端?提示:数据库方向的职业本质是「用可靠性与性能为企业数据资产负责」,如果你的兴奋点其实在业务逻辑,后端路线里的数据库深度(见 Java 后端路线)可能更匹配。答案没有对错,但必须写。
摸底产物:EXPLAIN 解读笔记一篇、恢复沙盘的操作记录(哪怕失败)、备忘录一份。它们会在阶段 1 结束时被回看——对比两个月后的自己。
面试题思路:数据库岗的三类题与答题框架
数据库方向的面试题看似庞杂,实际稳定地分为三类,每类有各自的答题框架:
第一类:机制原理题(“讲讲 MVCC""redo log 和 binlog 的区别”)。 答题框架是「解决什么问题 → 怎么实现 → 代价是什么」。多数候选人只答中间一段,能先讲清”这个机制是为了解决什么矛盾”的极少。以 MVCC 为例:先说它解决”读不阻塞写”的并发矛盾,再说 InnoDB 用 undo 版本链加 ReadView 判断可见性,最后讲代价——旧版本堆积需要 purge 线程回收,长事务会阻碍回收。三段齐全,就是面试官眼里的「懂原理」。
第二类:现场设计题(“这张表怎么建索引""这个慢 SQL 怎么治”)。 框架是「先问数据规模与查询模式,再给方案,再讲失效条件」。直接背答案(“建联合索引”)是初级信号;先问”这个查询的选择性如何、写入频繁吗”,再按选择性、最左前缀、回表成本推导方案,最后主动说出”如果写入占比高,这个索引的维护成本要重新权衡”,才是岗位要求的思维方式。平时练题时刻意训练「先提问再作答」的习惯。
第三类:事故复盘题(“遇到过什么线上数据问题”)。 框架是「现象 → 定位路径 → 根因 → 流程改进」。这类题考的不是技术而是工程素养,多数候选人败在只讲到”怎么修好”就停了。加一段「之后我们加了什么防护(备份演练频率、慢查询告警阈值、变更审核流程)」,档次立刻不同。这也是本路线要求检验项目全部产出「报告」而非「跑通截图」的原因——复盘写作能力就是这类题的直接弹药。
三类题的共同底座是阶段 1 到 2 的动手积累:原理题靠双库对比笔记,设计题靠索引设计报告,复盘题靠灾难演练报告。面试准备不是最后一个月的背诵,而是把做过的项目讲清楚。
常见弯路
- SQL 会写就停:会 SELECT 与精通索引隔着整个性能世界。SQL 是门槛,调优才是岗位价值;
- 只用图形工具不用命令行:DBA 的战场在终端。从第一天起 mysql/psql 客户端为主;
- 背八股不懂原理:隔离级别四级背诵人人会,MVCC 的 ReadView 机制能讲清的人凤毛麟角——分水岭在这;
- 不演练恢复:“备份成功”与”能恢复”是两回事。未演练过恢复的备份等于没有备份;
- MySQL/PG 站队互斥:双栈视角(尤其 MVCC 实现差异)本身就是高级感的来源,二选一是自我设限。
求职准备清单
- 索引设计报告 + 调优工程包 + 灾难演练报告 + 双栈对比笔记(四份文档就是面试弹药);
- 手写 SQL 100 题量级;
- 数据平台项目(含监控看板截图与运维手册);
- 简历全部用性能与可靠性数据说话。
下一步
从 SQL 是什么 开始。若目标是后端开发而非专职数据库,本路线阶段 1 加 2 的调优部分已够用,其余作为在职进阶;运维视角的完整体系见 云与运维路线。