数据库概述
数据库是现代应用系统保存事实、表达关系、支撑查询和承载状态的核心基础设施。一个成熟工程师学习数据库,不能只停在“会写 SQL、会用缓存”,而要理解数据模型、事务、索引、日志、复制、缓存、高可用和故障恢复之间的关系。
本章节按“先建立数据库通识,再深入 MySQL、Redis、Oracle”的顺序重写。MySQL 侧重关系模型、事务一致性、索引优化和高可用;Redis 侧重内存数据结构、缓存工程、低延迟访问和分布式协调;Oracle 侧重企业级事务、优化器、备份恢复、灾备集群、多租户和安全治理。
# 1. 数据库学习主线
数据库知识体系
├─ 数据模型与建模
├─ SQL 与查询语言
├─ 事务与一致性
├─ 索引与执行计划
├─ 存储引擎与日志
├─ 复制与高可用
├─ 缓存与性能治理
└─ 分布式扩展与故障恢复
# 2. 数据库类型对比
| 类型 | 代表系统 | 适合场景 | 主要风险 |
|---|---|---|---|
| 关系型数据库 | MySQL、PostgreSQL、Oracle | 交易、订单、账户、强约束数据 | 锁、慢 SQL、扩展成本 |
| 键值/内存数据库 | Redis | 缓存、计数、排行榜、会话、限流 | 内存、热点、大 key、一致性 |
| 文档数据库 | MongoDB | 半结构化文档、灵活 Schema | 复杂事务和强约束治理 |
| 搜索引擎 | Elasticsearch、OpenSearch | 全文检索、日志分析、聚合 | 写入延迟、索引成本、一致性 |
| 分布式 SQL | TiDB、CockroachDB | 水平扩展、跨节点事务 | 运维复杂、延迟模型变化 |
# 3. MySQL 章节目录
- MySQL概述
- MySQL安装与版本选型
- MySQL基础架构
- SQL基础与执行顺序
- MySQL存储引擎
- InnoDB体系结构
- 数据类型与字符集
- 表结构设计与范式
- SQL查询与函数
- MySQL事务
- 事务隔离级别与MVCC
- Undo Log与Read View
- 并发控制与一致性读
- 索引设计方法论
- MySQL索引
- MySQL B+索引
- 执行计划与EXPLAIN
- SQL优化与优化器
- 慢查询与性能分析
- MySQL锁
- InnoDB行锁与间隙锁
- 死锁分析与处理
- Buffer Pool与内存管理
- Change Buffer与自适应哈希索引
- MySQL日志
- Binlog复制与主从架构
- 高可用与故障切换
- 备份恢复与数据迁移
- 分库分表与分区表
- MySQL安全运维与面试设计题
# 4. Redis 章节目录
- Redis概述
- Redis版本
- Redis相较于其他NoSQL数据库
- Redis安装配置与客户端
- Redis数据类型
- String Bitmap Bitfield
- Hash List Set ZSet
- Stream与消息队列
- Redis内部编码
- Redis命令
- 过期删除与内存淘汰
- 内存管理与对象模型
- 单线程模型与IO多路复用
- 事件循环与网络模型
- Redis持久化机制
- RDB与AOF实践
- 复制原理与主从同步
- Sentinel哨兵机制
- Redis Cluster集群
- Redis缓存管理
- 缓存穿透击穿雪崩
- 热点Key与大Key治理
- 一致性与缓存更新策略
- 发布订阅与Lua脚本
- Redis事务
- Redis Functions与可编程能力
- Redis安全与多租户治理
- Redis监控排障与性能优化
- Redis数据结构高级专题
- Redis分布式锁
# 5. Oracle 章节目录
- Oracle概述
- Oracle版本与部署选型
- Oracle安装配置与客户端工具
- Oracle体系结构与实例数据库
- Oracle内存结构SGA与PGA
- Oracle进程与后台任务
- Oracle存储结构与表空间
- Oracle数据类型与字符集
- Oracle Schema对象与数据建模
- SQL基础与Oracle语法特性
- PLSQL基础与包过程函数
- Oracle事务与一致性读
- Oracle锁闩锁与并发控制
- Undo Redo与归档日志
- Oracle索引结构与设计
- 执行计划与DBMS_XPLAN
- 优化器统计信息与SQL调优
- AWR ASH与性能诊断
- Oracle等待事件与故障排查
- RMAN备份恢复与闪回技术
- Data Guard与灾备架构
- RAC集群与服务高可用
- ASM存储与文件管理
- Multitenant CDB与PDB
- 分区表与VLDB实践
- 数据泵SQLLoader与数据迁移
- Oracle安全审计与权限治理
- Oracle开发连接池与JDBC实践
- JSON向量与多模型能力
- Oracle运维规范与面试设计题
# 6. 从新手到专家的学习路径
| 阶段 | MySQL 重点 | Redis 重点 | Oracle 重点 |
|---|---|---|---|
| 新手入门 | 建库建表、基础 SQL、数据类型 | 基础命令、常见数据类型、TTL | Schema、SQL、表空间、客户端连接 |
| 工程进阶 | 索引、事务、锁、执行计划 | 缓存模式、过期淘汰、持久化 | PL/SQL、事务一致性、索引、执行计划 |
| 高级优化 | InnoDB、日志、慢查询、复制 | 事件模型、大 key、热点治理、Cluster | 优化器、AWR/ASH、RMAN、Data Guard、RAC |
| 专家研究 | MVCC、恢复、分片、高可用演练 | 内部编码、可靠消息、分布式锁、向量与概率结构 | Multitenant、ASM、分区 VLDB、安全审计、多模型能力 |
# 7. 数据库工程原则
- 先建模,再写查询;先理解业务不变量,再选择一致性方案。
- 所有性能优化都要有证据:执行计划、慢日志、指标、压测和复测结果。
- 缓存不是数据库替身,缓存失败时必须保护数据库和核心业务。
- 高可用不是部署多个节点,而是故障检测、切换、隔离、恢复和演练的闭环。
- 专家不是参数背得多,而是能把业务语义、底层机制和运维流程连起来。
# 8. Tips 快问快答
Q:数据库学习先学 MySQL 还是 Redis?
A:先学 MySQL 建立数据模型、事务和索引基础,再学 Redis 的缓存和内存数据结构会更稳。
Q:Redis 能不能替代 MySQL?
A:通常不能。Redis 适合低延迟结构化访问和缓存,MySQL 适合关系、事务和持久事实存储。
Q:什么时候需要分布式数据库?
A:当单机容量、吞吐、可用性或地域需求确实成为瓶颈,并且团队能承担复杂度时。
# 9. 阶段小结
数据库能力的成熟路径,是从 API 使用走向机制理解,再走向系统设计和故障恢复。MySQL、Redis 和 Oracle 分别代表互联网常见关系数据库、内存实时结构和企业级关键业务数据库能力。它们配合得好,系统会既可靠又快速;边界混乱时,系统会既不一致又难排障。
上次更新: 2026/06/25, 15:30:11