DBA 系统学习计划(从入门到进阶)
一、入门阶段(1-2 个月):夯实数据库基础
1.1 数据库理论基础(1 周)
- 核心知识点:理解数据库基本概念(数据、表、字段、主键、外键、索引等);掌握数据库三大范式(1NF、2NF、3NF);区分关系型数据库(MySQL、Oracle、SQL Server)与非关系型数据库(MongoDB、Redis)的适用场景。
- 学习资源:教材《数据库系统概论》(萨师煊版);B 站 “数据库系统概论” 公开课(中国大学 MOOC)。
- 实践任务:手绘 ER 图(实体 - 关系图),描述一个简单业务场景(如电商用户 - 订单 - 商品关系)。
1.2 SQL 基础与实战(3-4 周)
- 核心知识点:
- DDL(数据定义语言):CREATE(建表 / 库)、ALTER(修改表结构)、DROP(删除);
- DML(数据操纵语言):INSERT(插入)、UPDATE(更新)、DELETE(删除数据);
- DQL(数据查询语言):SELECT 基础查询、WHERE 条件(AND/OR/LIKE/IN)、GROUP BY 分组、HAVING 筛选、ORDER BY 排序、JOIN 关联(内连接 / 左连接 / 右连接)。
- 学习资源:MySQL 官方文档(SQL 语法部分);LeetCode “数据库” 题库(前 50 道简单题)。
- 实践任务:搭建本地 MySQL 环境(使用 XAMPP 或 Docker),完成 “学生 - 课程 - 成绩” 系统的表设计与 SQL 操作(含数据插入、多表查询、统计分析)。
1.3 数据库安装与基础配置(1 周)
- 核心知识点:Windows/Linux 系统下 MySQL/Oracle 的安装步骤;配置文件修改(端口、字符集、最大连接数);服务启停与状态查看;客户端工具使用(Navicat、SQLyog、PL/SQL Developer)。
- 实践任务:在 Linux(CentOS/Ubuntu)系统中安装 MySQL 8.0,配置远程连接,使用 Navicat 连接并执行 SQL 脚本。
二、进阶阶段(3-4 个月):核心运维与性能优化
2.1 数据库备份与恢复(2 周)
- 核心知识点:
- 备份类型:全量备份、增量备份、差异备份;
- 工具使用:MySQL(mysqldump、xtrabackup)、Oracle(RMAN、expdp/impdp);
- 恢复策略:完整恢复、时间点恢复(PITR)、误删数据恢复(如 MySQL binlog 日志利用)。
- 实践任务:
- 使用 mysqldump 对 MySQL 数据库进行全量备份,编写 Shell 脚本实现每日自动备份;
- 模拟误删表数据,通过 binlog 日志进行时间点恢复;
- 使用 xtrabackup 实现 MySQL 增量备份与恢复。
2.2 索引设计与优化(2 周)
- 核心知识点:
- 索引类型:B + 树索引(主键、普通、唯一)、哈希索引、全文索引、前缀索引;
- 索引原理:B + 树结构与查询效率、聚簇索引 vs 非聚簇索引(InnoDB vs MyISAM);
- 优化技巧:避免索引失效(如函数操作、类型转换)、覆盖索引、联合索引(最左前缀原则)、冗余索引清理。
- 实践任务:
- 分析慢查询 SQL(使用 EXPLAIN 命令),识别无索引或索引失效场景;
- 为电商 “订单表” 设计联合索引(如 order_user_id + order_create_time),对比优化前后查询耗时;
- 清理测试库中的冗余索引(使用 sys.schema_unused_indexes 视图)。
2.3 性能监控与调优(4-6 周)
- 核心知识点:
- 监控工具:MySQL(Performance Schema、Sys Schema、Prometheus+Grafana)、Oracle(AWR、ASH 报告);
- 性能指标:QPS、TPS、连接数、慢查询数、缓存命中率(InnoDB Buffer Pool)、锁等待时间;
- 调优方向:参数调优(innodb_buffer_pool_size、max_connections、query_cache_size)、SQL 语句优化(避免子查询、优化 JOIN 顺序)、表结构优化(分库分表、分区表)。
- 实践任务:
- 在 MySQL 中启用 Performance Schema,监控慢查询(设置 long_query_time=1 秒),分析 TOP 10 慢 SQL 并优化;
- 使用 Prometheus+Grafana 搭建 MySQL 监控面板,实时查看 QPS、连接数等指标;
- 调优 InnoDB 参数(如将 innodb_buffer_pool_size 设置为服务器内存的 50%-70%),对比调优前后缓存命中率。
2.4 高可用架构搭建(3-4 周)
- 核心知识点:
- 高可用方案:MySQL(主从复制、MGR 主从集群)、Oracle(RAC 集群)、Redis(主从 + 哨兵、集群);
- 负载均衡:使用 ProxySQL、MaxScale 实现 MySQL 读写分离;
- 故障切换:主从复制中手动切换与 MGR 自动故障转移。
- 实践任务:
- 搭建 MySQL 一主两从架构(基于 GTID 复制),配置读写分离(主库写、从库读);
- 部署 ProxySQL 作为中间件,实现 SQL 路由与故障自动切换;
- 模拟主库宕机,验证从库是否能正常接管服务(MGR 架构)。
三、高级阶段(2-3 个月):架构设计与专项技术
3.1 分库分表与分布式数据库(3 周)
- 核心知识点:
- 分库分表场景:数据量超千万、单表性能瓶颈;
- 拆分策略:水平拆分(按时间、用户 ID 哈希)、垂直拆分(按业务模块拆分表);
- 工具与方案:Sharding-JDBC(客户端分片)、MyCat(中间件分片)、分布式数据库(TiDB、OceanBase)。
- 实践任务:
- 使用 Sharding-JDBC 对 “订单表” 按用户 ID 哈希进行水平分表(分 8 个表),测试数据插入与查询;
- 了解 TiDB 架构(存储层 TiKV、计算层 TiDB Server),部署本地测试集群并执行 SQL。
3.2 数据库安全与权限管理(2 周)
- 核心知识点:
- 安全风险:SQL 注入、数据泄露、未授权访问;
- 防护措施:最小权限原则(创建只读用户、业务用户)、数据加密(传输加密 SSL/TLS、存储加密 InnoDB 透明加密)、审计日志(开启 MySQL 审计插件);
- 权限管理:MySQL(用户创建 CREATE USER、权限授予 GRANT)、Oracle(角色管理、表空间权限)。
- 实践任务:
- 为电商业务创建专用用户,仅授予 SELECT/INSERT/UPDATE 权限(无 DROP/ALTER 权限);
- 配置 MySQL SSL 加密连接,强制客户端使用 SSL 连接;
- 开启 MySQL 审计日志,记录用户登录与敏感操作(如 DELETE、DROP)。
3.3 非关系型数据库(NoSQL)运维(2-3 周)
- 核心知识点:
- Redis:数据结构(String、Hash、List、Set、Sorted Set)、持久化(RDB、AOF)、主从复制、哨兵模式、集群部署;
- MongoDB:文档模型、集合与索引、副本集、分片集群;
- 实践任务:
- 部署 Redis 主从 + 哨兵架构(1 主 2 从 3 哨兵),测试故障自动切换;
- 在 MongoDB 中创建 “用户日志” 集合,设计索引并执行聚合查询(如按日期统计日志数量)。
四、实战与认证阶段(长期)
4.1 项目实战(持续)
- 推荐场景:
- 搭建个人博客数据库(MySQL),实现备份、监控、性能优化;
- 模拟电商订单系统(分库分表 + Redis 缓存),解决高并发查询问题;
- 参与开源项目数据库维护(如修复慢查询、优化索引)。
- 输出成果:编写技术文档(如《MySQL 主从复制部署手册》《Redis 性能调优总结》),发布到博客平台(如掘金、知乎)。
4.2 认证考试(可选,提升竞争力)
- 推荐认证:
- MySQL:Oracle Certified Professional, MySQL 8.0 Database Administrator (OCP);
- Oracle:Oracle Database 19c Administrator Certified Professional (OCP);
- Redis:Redis Certified Developer (RCD)。
- 备考建议:结合官方教材与模拟题,先通过 OCA(初级)认证,再考取 OCP(高级)认证,认证过程中巩固核心知识点。
4.3 持续学习与社区交流
- 学习渠道:
- 官方文档:MySQL、Oracle、Redis、MongoDB 官方文档(最权威资料);
- 技术社区:掘金、InfoQ、V2EX(DBA 板块)、Stack Overflow(解决问题);
- 会议与课程:Percona Live(数据库会议)、极客时间《MySQL 实战 45 讲》《Redis 核心技术与实战》。
- 习惯养成:每周阅读 1 篇数据库技术文章,每月总结 1 次学习笔记,每季度参与 1 次技术交流(线上 / 线下)。
五、学习时间规划建议(按每天 2-3 小时)
阶段 | 周期 | 每日学习重点 |
入门阶段 | 1-2 月 | 1 小时理论学习 + 1-2 小时实践操作 |
进阶阶段 | 3-4 月 | 1.5 小时技术学习 + 1 小时实战 + 0.5 小时总结 |
高级阶段 | 2-3 月 | 1 小时专项技术 + 1.5 小时架构实践 + 0.5 小时文档编写 |
实战与认证阶段 | 长期 | 1 小时项目实战 + 1 小时认证备考 / 社区交流 |