很多开发者在面试或线上故障复盘时,常被问到“为什么这条 SQL 变慢了”或“如何设计能支撑千万级数据的表结构”。这门课正是针对这一痛点,不讲空洞的理论,而是深入 MySQL 内部机制,解决高并发场景下数据库性能瓶颈与稳定性问题。它适合已经掌握基础 SQL 语法,但面对慢查询、锁冲突、表结构优化感到无从下手的后端工程师或转行者。如果你只是刚学会 `SELECT *`,建议先补齐基础;如果你能独立编写复杂查询,但不懂底层为何如此,这门课能帮你建立从“会用”到“懂原理”的认知跨越。
核心逻辑:从执行原理到实战调优
课程没有堆砌零散的调优技巧,而是按照“原理-架构-实践”的逻辑层层递进。前三章重点拆解 MySQL 的软件架构与 SQL 执行流程,让你明白一条语句从客户端发出到返回结果,中间经历了连接建立、解析、优化、执行等哪些步骤,以及 InnoDB 存储引擎如何通过 B+ 树组织数据。这是后续优化的基石,只有懂了“索引即数据”和“左侧前缀匹配”的原理,才能理解为什么某些看似合理的查询会全表扫描。中间章节聚焦于建表与查询优化,结合真实业务场景,讲解如何设计符合业务的表结构、约束数据,以及针对 `WHERE`、`COUNT`、`ORDER BY` 等常见慢查询场景的索引优化策略。这种由浅入深的结构,避免了直接背诵命令导致“知其然不知其所以然”的问题。
学习路径与实操建议
建议优先完成第 3 章和第 4 章,这两部分是理解 MySQL 内核的关键。在搭建环境时,不必过度纠结于 CentOS 的具体配置细节,重点在于熟悉 MySQL 的安装与基本配置,确保本地能跑通即可。学习第 5 章“查询速度更快”时,务必配合课程提供的示例数据库进行动手实验,不要只看视频。你需要亲自编写那些“慢”的 SQL,使用 `EXPLAIN` 分析执行计划,观察索引选择的变化,再尝试调整索引或改写语句,感受性能差异。这种“报错-分析-优化-验证”的闭环练习,是掌握调优能力的唯一途径。学完这套体系后,你应当能独立诊断线上常见的慢查询问题,设计出具备良好扩展性的数据库表结构,并在业务高峰期通过合理的索引策略和查询优化,保障系统的高可用与高性能,而不再依赖死记硬背的“偏方”。
课程目录
第1章 课程介绍 试看 1 节 | 10分钟 1-1 课程导学 (09:14).mp4 第2章 环境搭建 3 节 | 28分钟 2-1 CentOS7操作系统搭建 (09:20).mp4 2-2 MySQL安装讲解 (10:04).mp4 2-3 MySQL配置 (07:38).mp4 第3章 一个SQL语句如何执行 8 节 | 70分钟 3-1 为什么需要数据库 (07:41).mp4 3-2 数据库软件的典型架构是怎样的 (10:04).mp4 3-3 MySQL软件架构是怎样的 (09:23).mp4 3-4 客户端怎样连接MySQL数据库(上) (14:17).mp4 3-5 客户端怎样连接MySQL数据库(下) (04:19).mp4 3-6 一个SQL语句是怎样执行的 (10:27).mp4 3-7 MySQL有哪些存储引擎 (09:33).mp4 3-8 本章小结 (03:58).mp4 第4章 如何建表更符合业务 11 节 | 129分钟 4-1 什么叫索引组织表 (07:44).mp4 4-2 B+树的B是什么意思-1 (13:24).mp4 4-3 B+树的B是什么意思-2 (14:22).mp4 4-4 为什么说InnoDB索引即数据 (17:20).mp4 4-5 InnoDB数据表是如何存储的 (11:59).mp4 4-6 InnoDB数据行长什么样-1 (12:08).mp4 4-7 InnoDB数据行长什么样-2 (14:59).mp4 4-8 索引有哪些左侧用法 (12:53).mp4 4-9 如何约束数据 (07:36).mp4 4- 10 如何使用不存在的数据表 (05:56).mp4 4- 11 本章小结 (10:18).mp4 第5章 怎么查询速度更快 10 节 | 133分钟 5-1 示例数据库的安装 (07:26).mp4 5-2 WHERE查询太慢,怎么办 (13:14).mp4 5-3 有更合适的索引不走,怎么办 (11:08).mp4 5-4 COUNT这么慢,怎么办 (12:57).mp4 5-5 ORDER BY这么慢,怎么办 (16:14).mp4 5-6 随机选取这么慢,怎么办 (17:21).mp4 5-7 带头大哥丢了,怎么办 (15:38).mp4 5-8 明明有索引,就是不走,怎么办 (18:10).mp4 5-9 分页查询这么慢,怎么办 (09:30).mp4 5- 10 本章小结 (10:27).mp4 第6章 如何处理数据更新 14 节 | 176分钟 6-1 数据库动起来之后,会发生什么 (06:55).mp4 6-2 什么日志不是给人看的 (15:40).mp4 6-3 一条数据是如何更新的 (14:16).mp4 6-4 锁:怎样平衡功能与性能 (13:39).mp4 6-5 事务:InnoDB的杀手锏(ACID) (06:36).mp4 6-6 事务:InnoDB的杀手锏(隔离级别) (19:08).mp4 6-7 MVCC是怎么做到千人千面的(1) (11:09).mp4 6-8 MVCC是怎么做到千人千面的(2) (14:21).mp4 6-9 间隙锁把全表都锁住了,怎么办 (18:07).mp4 6- 10 MySQL也有垃圾回收吗 (11:33).mp4 6- 11 如何改善刷脏性能 (10:32).mp4 6- 12 如何解决死锁问题 (13:45).mp4 6- 13 元数据锁是如何导致数据库崩溃的 (13:19).mp4 6- 14 本章小结 (06:38).mp4 第7章 ORM框架原理 4 节 | 28分钟 7-1 什么是ORM框架 (08:58).mp4 7-2 ORM框架是如何设计的 (07:30).mp4 7-3 ORM框架有哪些常见问题 (07:39).mp4 7-4 本章小结 (03:42).mp4 第8章 怎么给数据上保险 9 节 | 102分钟 8-1 数据库有哪些种类的备份 (07:38).mp4 8-2 如何使用OUTFILE命令进行备份 (12:09).mp4 8-3 如何使用mysqldump进行备份 (17:25).mp4 8-4 如何使用mysqldump+binlog增量备份 (19:22).mp4 8-5 如何使用XtraBackup物理备份-1 (14:25).mp4 8-6 如何使用XtraBackup物理备份-2 (10:32).mp4 8-7 MySQL备份工具如何指导我们的创新 (07:50).mp4 8-8 如何防患于未然 (06:14).mp4 8-9 本章小结 (05:30).mp4 第9章 搭建“三高”架构的基础--如何实现数据冗余 10 节 | 127分钟 9-1 三高架构之路 (08:32).mp4 9-2 复制有哪些类型 (18:19).mp4 9-3 主从复制配置实战 (16:45).mp4 9-4 怎样使得复制的配置更方便 (07:55).mp4 9-5 为什么binlog格式会影响复制 (14:30).mp4 9-6 备库延迟太大,怎么办-1 (14:54).mp4 9-7 备库延迟太大,怎么办-2 (21:03).mp4 9-8 如何在备库读到最新数据 (09:30).mp4 9-9 怎样实现最简单的高可用架构 (10:46).mp4 9- 10 本章小结 (04:31).mp4 第10章 数据库高并发、高性能的基本保证--如何解决数据库超大容量不够问题 9 节 | 113分钟 10-1 怎样最简单地扩展容量 (12:43).mp4 10-2 为什么要分库分表 (15:17).mp4 10-3 dble比MyCat强在哪 (17:46).mp4 10-4 如何安装dble (09:03).mp4 10-5 如何配置dble (13:53).mp4 10-6 如何使用dble (12:25).mp4 10-7 怎样提高分库分表架构的可靠性 (14:49).mp4 10-8 分库分表之后性能反而下降,怎么办 (11:44).mp4 10-9 本章小结 (04:47).mp4 第11章 数据库高可用和身份切换的关键--如何解决数据库经常宕机问题 6 节 | 88分钟 11-1 切换:保业务还是保数据 (13:07).mp4 11-2 数据库切换了,业务怎么办 (11:36).mp4 11-3 如何实现自动主从切换 (18:17).mp4 11-4 MHA自动主从切换实战 (18:45).mp4 11-5 高可用了,集群为什么还会挂 (18:24).mp4 11-6 本章小结 (07:42).mp4 第12章 未来的数据库什么样 9 节 | 108分钟 12-1 MySQL8.0有什么新特性 (16:28).mp4 12-2 InnoDB Cluster和PXC有什么区别 (08:24).mp4 12-3 数据库有哪些分类 (22:36).mp4 12-4 谁是单体数据库之王 (13:56).mp4 12-5 MySQL能魔改成什么样 (15:18).mp4 12-6 谁在支撑双十一 (09:13).mp4 12-7 谁是国产数据库最闪亮的星 (07:53).mp4 12-8 打不死的小强 (05:32).mp4 12-9 本章小结 (08:36).mp4 第13章 课程总结 1 节 | 8分钟 13-1 一切才刚刚开始(完结) (07:32).mp4






