一、完整版文本思维导图(层级清晰)
数据库知识体系 ├─ 一、基础理论(通用核心) │ ├─ 1. 基础概念 │ │ ├─ 基本定义:数据/DB/DBMS/DBS │ │ ├─ 数据库分类:关系型/NoSQL/时序/图数据库 │ │ ├─ 数据独立性:物理独立性、逻辑独立性 │ │ ├─ 三级模式两级映像:外模式/模式/内模式 + 两层映像 │ │ └─ 访问接口:JDBC、ODBC、ADO.NET、OCI │ ├─ 2. 数据模型与关系理论 │ │ ├─ 概念模型:E-R图(实体/属性/联系)、弱实体、递归联系 │ │ ├─ 逻辑模型:层次/网状/关系模型 │ │ ├─ 关系要素:元组/属性/主键/外键/候选键/域/笛卡尔积 │ │ ├─ 关系代数:选择、投影、连接、并、交、差、除 │ │ └─ 完整性约束:实体/参照/用户自定义完整性 │ ├─ 3. 范式与数据设计 │ │ ├─ 函数依赖:部分依赖、传递依赖 │ │ ├─ 范式:1NF/2NF/3NF/BCNF 规则与判定 │ │ ├─ 反范式设计:场景、冗余、空间换时间 │ │ └─ 数仓模型:星型模型、雪花模型、事实表/维度表 │ ├─ 4. 事务机制 │ │ ├─ ACID 四大特性 │ │ ├─ 并发问题:脏读、不可重复读、幻读 │ │ ├─ 四大隔离级别 │ │ ├─ 事务传播属性、事务嵌套、只读事务 │ │ └─ 长事务:危害、排查、优化 │ ├─ 5. 锁机制 │ │ ├─ 粒度划分:表锁、行锁、页锁 │ │ ├─ 类型划分:共享锁、排他锁、意向锁、MDL元数据锁 │ │ ├─ InnoDB专属:记录锁、间隙锁、临键锁 │ │ ├─ 乐观锁 & 悲观锁:实现、场景 │ │ └─ 死锁:成因、排查、解决;锁等待、锁超时 │ └─ 6. 索引基础 │ ├─ 索引优缺点、使用原则、索引选择性/基数 │ ├─ 索引分类:主键/唯一/普通/联合/全文/空间/哈希索引 │ ├─ 底层结构:B+树原理 │ └─ 索引维护:索引碎片、重建与优化 ├─ 二、关系型数据库(MySQL为主 + Oracle补充) │ ├─ 1. MySQL整体架构 │ │ ├─ 四层架构:连接层/服务层/引擎层/存储层 │ │ ├─ 线程模型、连接池 │ │ ├─ 存储引擎:InnoDB/MyISAM/Memory/TokuDB/RocksDB 对比 │ │ └─ 物理文件:.frm/.ibd/.ibdata1/.MYD/.MYI │ ├─ 2. SQL 全语法体系 │ │ ├─ 五大语言:DDL/DML/DQL/DCL/TCL │ │ ├─ 基础查询:单表/多表联查、子查询、分页、排序、分组、聚合 │ │ ├─ 高级语法:UNION、CTE公用表表达式、递归查询、窗口函数 │ │ ├─ 函数体系:字符串/日期/数学/流程函数、正则运算 │ │ ├─ 字符集与排序规则:utf8/utf8mb4、乱码处理 │ │ └─ 权限体系:全局/库级/表级/列级权限 │ ├─ 3. 核心日志体系 │ │ ├─ redo log:刷盘策略、崩溃恢复 │ │ ├─ undo log:事务回滚、MVCC支撑 │ │ ├─ binlog:日志格式、位点、GTID、主从依赖、归档清理 │ │ └─ 辅助日志:慢查询日志、错误日志、通用日志 │ ├─ 4. MVCC 多版本并发控制 │ │ ├─ 隐藏列、事务ID、版本链、Read View │ │ ├─ 快照读 vs 当前读 │ │ └─ 不同隔离级别下MVCC表现、解决幻读原理 │ ├─ 5. 索引深度原理 │ │ ├─ 聚簇索引 & 非聚簇索引、主键设计原则 │ │ ├─ 最左匹配、索引失效场景、覆盖索引、回表、ICP索引下推 │ │ ├─ 数据页结构、页分裂、页合并 │ │ └─ 强制索引、忽略索引使用 │ ├─ 6. 高级特性 │ │ ├─ 视图、存储过程、自定义函数、触发器 │ │ ├─ 事件调度器、临时表、内存表 │ │ └─ 分区表:分区策略、分区裁剪、运维 │ ├─ 7. Oracle 补充 │ │ ├─ 体系结构:表空间、回滚段、SCN │ │ ├─ 高级对象:序列、同义词、DBLink、物化视图 │ │ ├─ 闪回技术、归档模式 │ │ └─ 备份恢复:RMAN、数据泵expdp/impdp │ └─ 8. SQL注入与基础防御 ├─ 三、NoSQL 非关系型数据库 │ ├─ 1. Redis(KV数据库) │ │ ├─ 基础数据结构 + 底层实现:SDS/跳跃表/压缩列表等 │ │ ├─ 高阶结构:Stream、HyperLogLog、Geo、Bitmap │ │ ├─ 内存管理:内存淘汰策略、内存碎片 │ │ ├─ 持久化:RDB、AOF、刷盘策略、重写机制 │ │ ├─ 高可用:主从复制、哨兵、Cluster集群(哈希槽/扩容缩容) │ │ ├─ 客户端:Pipeline、事务、Lua脚本 │ │ └─ 缓存专题:三大问题(穿透/击穿/雪崩)、更新策略、分布式锁、红锁 │ ├─ 2. MongoDB(文档数据库) │ │ ├─ BSON格式、文档/集合、嵌套与数组操作 │ │ ├─ 索引:文本/地理/TTL过期索引 │ │ ├─ 聚合管道、游标管理 │ │ ├─ 副本集、读写分离、事务 │ │ └─ 存储引擎WiredTiger、冷热数据处理 │ ├─ 3. HBase(列族数据库) │ │ ├─ 核心概念:行键、列族、版本、Region、HMaster │ │ ├─ 读写流程、MemStore、StoreFile、HFile │ │ ├─ 数据删除、预分区、RowKey设计 │ │ └─ 过滤器、协处理器 │ └─ 4. 其他NoSQL │ ├─ 时序库:InfluxDB/Prometheus、数据过期、采样降精度 │ └─ 图数据库:Neo4j、节点/关系、图遍历 ├─ 四、分布式数据库与架构 │ ├─ 1. 分布式理论基础 │ │ ├─ CAP、BASE理论、三选二落地 │ │ ├─ 一致性模型:强/弱/最终/因果一致性 │ │ └─ 拜占庭问题 │ ├─ 2. 分库分表 │ │ ├─ 拆分方式:垂直拆分、水平拆分 │ │ ├─ 分片策略、分片键选择、混合分片 │ │ ├─ 中间件:Sharding-JDBC、MyCat │ │ ├─ 核心难题:跨库JOIN/分页/排序/聚合、跨分片事务 │ │ ├─ 全局ID方案:雪花算法/号段/Redis自增等 │ │ └─ 集群扩容、数据迁移 │ ├─ 3. 主从复制 & 高可用 │ │ ├─ 同步模式:异步/半同步/全同步复制 │ │ ├─ 主从延迟:成因、监控、优化 │ │ ├─ 架构:一主多从、双主、MGR、PXC/Galera集群 │ │ └─ 主从切换、故障演练 │ ├─ 4. 分布式事务 │ │ ├─ X/Open DTP模型、2PC、3PC │ │ ├─ TCC、SAGA、本地消息表、可靠消息队列 │ │ ├─ Seata四大模式:AT/TCC/SAGA/XA │ │ └─ 幂等、空回滚、悬挂问题处理 │ ├─ 5. 数据同步 & 数据仓库 │ │ ├─ CDC变更数据捕获、Canal/DataX/Debezium │ │ ├─ 数仓分层:ODS/DWD/DWS/ADS │ │ ├─ 数仓专题:拉链表、快照表、慢变维度SCD、数据血缘、数据质量 │ │ └─ 离线数仓(Hive)、实时数仓(Flink+Kafka) │ └─ 6. 国产分布式数据库 │ ├─ TiDB、OceanBase、PolarDB、GaussDB │ └─ 计算存储分离、HTAP混合负载 ├─ 五、性能调优 & 运维实战 │ ├─ 1. SQL调优 │ │ ├─ Explain执行计划全解析 │ │ ├─ 慢查询定位、SQL改写、IN/EXISTS/JOIN选型 │ │ ├─ 大SQL、深分页、大事务优化 │ │ └─ 在线无锁DDL、大表DDL优化 │ ├─ 2. 参数与硬件调优 │ │ ├─ 内存核心参数、会话级参数陷阱 │ │ ├─ IO优化、磁盘、SSD、IO调度算法 │ │ └─ 网络参数、TCP优化 │ ├─ 3. 备份与恢复 │ │ ├─ 逻辑备份:mysqldump、mydumper │ │ ├─ 物理备份:XtraBackup(全量/增量/差异) │ │ ├─ 时间点恢复、基于binlog/GTID恢复 │ │ └─ 备份校验、本地/异地/跨机房灾备 │ ├─ 4. 监控与故障排查 │ │ ├─ 核心监控指标:QPS/TPS/连接数/缓冲池命中率等 │ │ ├─ 工具:performance_schema、sys库、pt工具集 │ │ └─ 常见故障:CPU/IO打满、连接溢出、主从断连、锁阻塞 │ └─ 5. 压力测试 │ ├─ sysbench使用、读写/混合压测 │ └─ 吞吐量、响应时间、并发数指标 ├─ 六、数据库工程设计规范 │ ├─ 1. 整体设计流程:需求→E-R→逻辑设计→物理设计 │ ├─ 2. 命名规范:库/表/字段/索引/约束 │ ├─ 3. 字段设计:数据类型选型、时间/金额/大字段处理、NULL值 │ ├─ 4. 通用设计:逻辑删除、通用审计字段 │ ├─ 5. 多租户三大实现方案 │ └─ 6. 流水表/日志表/历史表归档策略 ├─ 七、专项拓展(实战必备) │ ├─ 1. 数据库安全 │ │ ├─ 账号安全、IP白名单、远程访问限制 │ │ ├─ 传输加密、存储加密、数据脱敏 │ │ └─ 操作审计、行级权限、防拖库 │ ├─ 2. 幂等性设计 │ │ ├─ 应用场景:重复提交、消息重试 │ │ └─ 实现方案:唯一索引、分布式锁、状态机 │ ├─ 3. 高并发专项 │ │ ├─ 热点行/热点表优化 │ │ ├─ 流量削峰、队列解耦 │ │ └─ 多级缓存架构 │ ├─ 4. 迁移与升级 │ │ ├─ 版本升级、异构数据库迁移 │ │ └─ 停机迁移、平滑不停机迁移、数据校验 │ └─ 5. 轻型数据库:SQLite 特性、场景、并发限制二、分阶段学习清单(由浅入深,按阶段规划 + 必学知识点 + 学习目标)
阶段一:入门阶段(零基础 / 初级开发,1~2 周)
定位:会写 SQL、理解基础概念,能完成日常业务开发
必学内容
基础概念:DB/DBMS、数据库分类、数据独立性
数据模型:E-R 图、实体 / 联系、主键 / 外键
三大范式、基础完整性约束
SQL 核心语法
DDL:库、表、字段、约束创建修改
DML:增、删、改
DQL:单表查询、多表联查、分组、聚合、排序、分页
TCL:基础事务(提交、回滚)
索引基础:作用、分类、简单使用
简单权限管理、基础字符集问题
学习目标
独立完成业务表设计、常规 CRUD
看懂简单执行计划,会创建基础索引
理解事务基本用法,规避简单脏数据问题
阶段二:进阶阶段(中级开发,2~4 周)
定位:吃透 MySQL 内核、锁 / 事务 / 索引原理,能做 SQL 优化、排查常规问题
必学内容
事务深度:ACID、四大隔离级别、脏读 / 不可重复读 / 幻读
锁机制:表锁 / 行锁、意向锁、乐观锁 / 悲观锁、死锁处理
MySQL 架构、存储引擎差异、物理文件
高级 SQL:窗口函数、CTE、子查询优化、
IN/EXISTS选型索引进阶:B + 树、聚簇 / 非聚簇索引、最左匹配、索引失效、覆盖索引
MVCC 原理、快照读 / 当前读
三大日志:redo/undo/binlog 作用与基础流程
视图、存储过程、触发器、分区表基础
基础 SQL 调优、慢查询定位
学习目标
熟练优化慢 SQL,解决索引、锁相关线上问题
理解 MVCC 与隔离级别底层实现
合理使用存储过程、分区表等高级特性
阶段三:NoSQL 专项(中级开发,1~2 周)
定位:掌握主流非关系型数据库,应对缓存、海量数据场景
必学内容
Redis
5 大基础数据结构、常用命令
持久化(RDB/AOF)、内存淘汰策略
缓存三大问题(穿透 / 击穿 / 雪崩)及解决方案
主从、哨兵基础,简单分布式锁实现
MongoDB
基础 CRUD、文档模型、常用索引
了解时序库、图数据库适用场景
学习目标
独立搭建 Redis 基础集群,落地缓存方案
使用 MongoDB 存储非结构化数据
阶段四:分布式 & 架构阶段(高级开发 / 架构师,4~6 周)
定位:应对海量数据、高并发、分布式场景,负责架构设计
必学内容
分布式理论:CAP、BASE、一致性模型
分库分表:拆分规则、分片键、中间件使用、全局 ID、跨分片问题
主从复制、主从延迟、MGR / 高可用集群
分布式事务:2PC/3PC、TCC/SAGA、Seata 主流方案
Redis 集群:Cluster 哈希槽、扩容缩容、Lua 脚本、红锁
数据同步:CDC、Canal、DataX
数据仓库基础:分层、星型 / 雪花模型、拉链表 / 快照表
国产分布式数据库:TiDB/OceanBase 基础认知
学习目标
设计分库分表、读写分离架构
选型并落地分布式事务、实时数据同步方案
具备大数据、数仓基础设计能力
阶段五:运维、调优 & 专项能力(全栈 / 运维 / 架构师,长期深耕)
定位:数据库运维、全链路调优、故障应急、安全管控
必学内容
深度调优:MySQL 内存 / IO / 网络参数调优、大事务 / 深分页终极优化
备份恢复:XtraBackup、时间点恢复、灾备方案
全维度监控、全套故障排查(CPU/IO/ 锁 / 连接异常)
压力测试:sysbench 压测、指标分析
数据库安全:加密、脱敏、审计、权限管控
工程规范:表设计规范、多租户方案、数据归档
迁移升级、幂等性设计、高并发热点优化
学习目标
独立负责线上数据库集群运维、全链路性能调优
处理数据库突发故障、制定容灾、安全、数据规范体系
阶段六:面试查漏(通用,贯穿全学习周期)
高频考点汇总(重点复盘)
理论:范式、函数依赖、三级模式、关系代数
MySQL:MVCC、锁(间隙锁 / 临键锁)、日志、索引失效、页分裂
Redis:底层结构、持久化、集群、分布式锁、缓存问题
分布式:分库分表痛点、分布式事务各方案对比、CAP/BASE
实战:SQL 优化思路、死锁排查、主从延迟优化