这门课解决什么工作场景

很多做业务开发的人,对数据库的认知停留在“会写增删改查、能跑通业务逻辑”的阶段。一旦遇到慢查询导致接口超时、高并发下数据错乱、或者大表分页性能断崖式下跌,往往只能靠盲目加索引或加缓存硬扛,说不清底层原因。这门关系型数据库课程聚焦的就是这类问题。它不教你基础的 SQL 语法,而是把存储引擎、索引结构和事务机制拆开,讲清楚数据在磁盘上是怎么组织的、查询优化器为什么有时会选错执行计划、并发写入时锁是怎么蔓延的。如果你平时写代码经常和慢查询日志较劲,或者需要为业务表结构做技术选型,这些底层机制正是你缺的那块拼图。

适合什么基础与学习顺序建议

资料适合已经能熟练写 SQL、至少掌握一门后端语言且有真实项目开发经验的读者。零基础转行的人直接看会觉得抽象,建议先补基本的数据库操作再来看。整个资料按存储引擎、索引、事务三块递进,建议先看存储引擎部分,尤其是 B-Tree 到 B+ Tree 的演进逻辑,这是理解后续所有性能问题的地基。接着看索引部分,重点放在复合索引的最左匹配原则和索引下推机制上。最后看事务部分的 undo log,结合隔离级别去理解 MVCC 是怎么避免读写阻塞的。不要跳跃着看,这三块是强依赖关系,跳过存储引擎直接看事务,很容易在页结构和行格式的地方卡住。

学完能独立做什么与资料配合方法

学完后,你应该能独立完成线上慢查询的排查与优化,看懂执行计划里每个字段的含义并判断优化器是否选错索引;在面对高并发业务场景时,能基于事务隔离级别和锁机制预判潜在的死锁风险,并合理设计表结构与索引。配合资料练习时,建议不要只看视频,每讲完一个底层机制,就打开本地的数据库客户端实操验证。比如讲到 B+ Tree 的页分裂,就建一张表批量插入乱序主键的数据,观察磁盘空间和页的变化;讲到事务隔离级别,就开两个终端窗口模拟并发读写,复现脏读或幻读现象。把视频里的理论操作在自己机器上跑一遍,比反复看几遍视频都管用。遇到卡壳的地方,优先回到存储引擎的页结构去对照,很多索引和事务的异常表现,根源都在数据怎么落盘上。


MySQL 一:存储引擎【6.5 小时】 · MySQL 三:事务(undo log)【2.4 小时】 · MySQL 二:索引 (Index)【4.7 小时】

课程目录

*   MySQL 一:存储引擎【6.5 小时】/

  *   MySQL 一:存储引擎【6.5 小时】.1_存储引擎课程内容.mp4

  *   MySQL 一:存储引擎【6.5 小时】.2_B-Tree 课程内容.mp4

  *   MySQL 一:存储引擎【6.5 小时】.3_什么是 B-Tree?.mp4

  *   MySQL 一:存储引擎【6.5 小时】.4_B-Tree 本质上是多路查找树.mp4

  *   MySQL 一:存储引擎【6.5 小时】.5_为什么关系型数据库使用 B-Tree 组织数据?.mp4

  *   MySQL 一:存储引擎【6.5 小时】.6_B+ Tree.mp4

  *   MySQL 一:存储引擎【6.5 小时】.7_B+ Tree 新增一条记录.mp4

  *   MySQL 一:存储引擎【6.5 小时】.8_B+ Tree 删除一条记录.mp4

  *   MySQL 一:存储引擎【6.5 小时】.9_InnoDB 存储引擎介绍.mp4

  *   MySQL 一:存储引擎【6.5 小时】.10_InnoDB 磁盘结构:表空间.mp4

  *   MySQL 一:存储引擎【6.5 小时】.11_InnoDB 磁盘结构:页 (Page).mp4

  *   MySQL 一:存储引擎【6.5 小时】.12_一个页的页内结构.mp4

  *   MySQL 一:存储引擎【6.5 小时】.13_行格式 (row_format).mp4

  *   MySQL 一:存储引擎【6.5 小时】.14_如何高效的在一个页中查找一条记录_.mp4

  *   MySQL 一:存储引擎【6.5 小时】.15_【总结】InnoDB 是如何根据主键查询一条记录.mp4

  *   MySQL 一:存储引擎【6.5 小时】.16_InnoDB 磁盘结构:区和段.mp4

  *   MySQL 一:存储引擎【6.5 小时】.17_InnoDB 内存结构之 Buffer Pool.mp4

  *   MySQL 一:存储引擎【6.5 小时】.18_Buffer Pool 如何管理缓存页.mp4

  *   MySQL 一:存储引擎【6.5 小时】.19_Buffer Pool 使用 LRU 算法提高缓存命中率.mp4

  *   MySQL 一:存储引擎【6.5 小时】.20_Buffer Pool 污染问题.mp4

  *   MySQL 一:存储引擎【6.5 小时】.21_脏页什么时候会被刷入磁盘.mp4

  *   MySQL 一:存储引擎【6.5 小时】.22_其他两种存储引擎:MyISAM 和 Memory.mp4

*   MySQL 三:事务(undo log)【2.4 小时】/

  *   MySQL 三:事务(undo log)【2.4 小时】.1_什么是数据库事务?.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.2_两种开启事务的方法:BEGIN 和 START TRANSACTION.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.3_事务的自动提交和隐式提交.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.5_事务的四大特性:ACID.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.6_什么是 undo log?.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.7_各种 undo log 的格式.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.8_存放 undo log 的 undo 页.mp4

  *   MySQL 三:事务(undo log)【2.4 小时】.10_回滚段 (Rollback Segment).mp4

*   MySQL 二:索引 (Index)【4.7 小时】/

  *   MySQL 二:索引 (Index)【4.7 小时】.1_索引 (Index) 课程内容.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.2_准备表数据(使用 SOURCE 执行 sql 文件).mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.3_主键索引(聚集索引 vs 非聚集索引).mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.4_EXPLAIN 查看选择的索引.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.5_辅助索引(Secondary Index) - 二级索引加速查询性能.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.6_InnoDB 的辅助索引的 B 树.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.7_InnoDB 基于辅助索引查询的步骤.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.8_优化:索引条件下推(Index Condition Pushdown).mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.9_有时使用索引查询反而慢.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.10_唯一索引.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.11_EXPLAIN 中的 type 字段的含义.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.12_联合索引.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.13_索引的选择性、索引顺序以及索引失效.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.14_覆盖索引.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.15_给字符串加索引 - 前缀索引.mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.16_自增主键 vs UUID 主键(页分裂).mp4

  *   MySQL 二:索引 (Index)【4.7 小时】.17_MyISAM 存储引擎中的索引.mp4

*   MySQL 五:并发控制【6.0 小时】/

  *   MySQL 五:并发控制【6.0 小时】.1_并发控制课程内容.mp4

  *   MySQL 五:并发控制【6.0 小时】.2_脏读、不可重复读以及幻读.mp4

  *   MySQL 五:并发控制【6.0 小时】.3_事务的隔离级别:读未提交和读已提交.mp4

  *   MySQL 五:并发控制【6.0 小时】.5_共享锁和独占锁.mp4

  *   MySQL 五:并发控制【6.0 小时】.6_全局锁、表级锁和行级锁.mp4

  *   MySQL 五:并发控制【6.0 小时】.7_表级锁:意向锁和元数据锁.mp4

  *   MySQL 五:并发控制【6.0 小时】.8_InnoDB 行级锁.mp4

  *   MySQL 五:并发控制【6.0 小时】.9_如何通过加锁实现串行化隔离级别?.mp4

  *   MySQL 五:并发控制【6.0 小时】.10_Next-Key Lock.mp4

  *   MySQL 五:并发控制【6.0 小时】.11_间隙锁(Gap Lock).mp4

  *   MySQL 五:并发控制【6.0 小时】.12_幻读问题是如何彻底解决的_.mp4

  *   MySQL 五:并发控制【6.0 小时】.14_版本链.mp4

  *   MySQL 五:并发控制【6.0 小时】.15_ReadView:一致性视图.mp4

  *   MySQL 五:并发控制【6.0 小时】.17_一致性读 vs 当前读.mp4

  *   MySQL 五:并发控制【6.0 小时】.18_MVCC 总结.mp4

*   MySQL 四:崩溃恢复【5.1 小时】/

  *   MySQL 四:崩溃恢复【5.1 小时】.1_什么是 redo log 以及为什么需要 redo log?.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.2_WAL(Write Ahead Logging) 技术.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.3_redo log 的格式.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.4_底层页面的原子访问(Mini-Transaction).mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.6_redo log 最终写到哪一个磁盘文件呢?.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.7_checkpoint - redo log 的循环写.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.8_redo log 加 undo log 一起实现 Crash-safe.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.9_如何查看 binlog 内容?.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.11_binlog 的作用一:数据恢复.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.12_使用 binlog 进行增量备份.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.13_binlog 的作用二:数据复制.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.14_MySQL 主从复制的配置和实践.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.15_statement 和 row 格式的 binlog 各自优缺点.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.16_binlog 的刷盘过程.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.18_两阶段提交保证数据一致.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.19_提升 redo log 和 binlog 刷盘的性能.mp4

  *   MySQL 四:崩溃恢复【5.1 小时】.20_binlog 和 redo log 常见问题总结.mp4

*   SQL 基础一:认识 SQL【3.8 小时】/

  *   SQL 基础一:认识 SQL【3.8 小时】.1_认识 SQL 课程内容.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.2_SQL 是什么以及为什么需要 SQL?.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.3_什么是数据库管理系统?.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.4_Windows 环境下安装 MySQL.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.5_Linux 环境下安装 MySQL.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.6_MySQL 中的数据库和表.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.7_常用的数据类型.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.8_完整性约束.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.9_外键约束.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.10_SQL 语句的分类.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.11_DCL - 数据库访问权限控制.mp4

  *   SQL 基础一:认识 SQL【3.8 小时】.12_一条 SQL 的执行过程.mp4

*   SQL 基础三:复杂查询【4.4 小时】/

  *   SQL 基础三:复杂查询【4.4 小时】.0_复杂查询课程内容.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.1_消除笛卡尔积.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.2_表的连接查询:内连接、外连接和自身连接.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.3_连接查询综合练习.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.4_聚合函数.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.5_分组聚合:GROUP BY 子句(一).mp4

  *   SQL 基础三:复杂查询【4.4 小时】.6_分组聚合:GROUP BY 子句(二).mp4

  *   SQL 基础三:复杂查询【4.4 小时】.7_分组聚合:HAVING 子句.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.8_WHERE 子句中的子查询.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.9_HAVING 子句和 FROM 子句中的子查询.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.10_综合查询.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.11_DDL 部分知识点补充.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.12_DML 部分知识点补充.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.13_视图.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.14_存储过程.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.15_分页查询:LIMIT 关键字.mp4

  *   SQL 基础三:复杂查询【4.4 小时】.16_临时表.mp4

*   SQL 基础二:简单查询【3.5 小时】/

  *   SQL 基础二:简单查询【3.5 小时】.1_简单查询课程内容以及准备数据表.mp4

  *   SQL 基础二:简单查询【3.5 小时】.2_SELECT 子句和 FROM 子句.mp4

  *   SQL 基础二:简单查询【3.5 小时】.3_限定查询:WHERE 子句(一).mp4

  *   SQL 基础二:简单查询【3.5 小时】.4_限定查询:WHERE 子句(二).mp4

  *   SQL 基础二:简单查询【3.5 小时】.5_排序查询:ORDER BY 子句.mp4

  *   SQL 基础二:简单查询【3.5 小时】.6_什么是单行函数.mp4

  *   SQL 基础二:简单查询【3.5 小时】.7_单行函数:字符串函数(一).mp4

  *   SQL 基础二:简单查询【3.5 小时】.8_单行函数:字符串函数(二).mp4

  *   SQL 基础二:简单查询【3.5 小时】.9_单行函数:字符串函数(三).mp4

  *   SQL 基础二:简单查询【3.5 小时】.10_单行函数:数值函数.mp4

  *   SQL 基础二:简单查询【3.5 小时】.11_单行函数:日期时间函数.mp4

  *   SQL 基础二:简单查询【3.5 小时】.12_单行函数:转换函数.mp4

  *   SQL 基础二:简单查询【3.5 小时】.13_单行函数:通用函数.mp4