这门课解决什么工作场景
很多做后端开发或者准备转行写代码的人,简历上都会写“熟练掌握 MySQL”,但真到面试被问到 InnoDB 底层细节时,往往只能背出“支持事务、行级锁”就卡壳了。这门资料聚焦的正是这个断层:它不教你怎么写基础的增删改查语句,而是把大厂面试中高频出现的存储引擎底层原理,拆成一道道具体的面试题来讲解。如果你准备去互联网公司面后端、Java 或者 DBA 岗位,经常在二面或三面因为底层原理被刷下来,这份资料就是用来帮你补齐这块短板的。它直接对标考场上的真实提问,比如面试官让你画一下 Buffer Pool 的结构,或者问你为什么不用标准 LRU 算法,这些场景在资料里都有对应的拆解。
适合什么基础与建议先看哪几块
这套资料不适合完全没写过 SQL 的零基础转行者,它默认你已经有过实际的项目开发经验,知道怎么在业务代码里连接数据库并做基本的查询优化,现在需要向底层源码级别的理解深入。建议拿到资料后,不要从头到尾当连续剧看,而是先从存储引擎类模块入手,重点看关于内存结构和缓存管理的几节。这部分讲得很细,尤其是 Page 页的管理和 LRU 算法的优化机制,是大厂面试极其容易拉开差距的考点。先把这些核心的内存模块吃透,理解了数据在内存里是怎么流转和淘汰的,再去听后续关于磁盘持久化和锁机制的题目,思维上会连贯很多,不至于一上来就陷入枯燥的源码细节里。
学完能独立做什么与资料怎么配合练习
学完这套资料,你能够独立应对技术面试中针对数据库底层的连环追问,不再只是停留在表面概念,而是能清晰地给面试官讲透数据页在内存中是怎么被加载、修改和刷盘的。在日常开发工作中,遇到复杂的性能调优问题,比如突然的数据库卡顿或者内存暴涨,你能通过底层原理去反推问题根源,而不是盲目地改索引。在看资料时,建议自己本地装一个 MySQL 环境,边看边对照着去设置参数,把视频里讲到的内存结构在本地实例里验证一遍。遇到讲算法优化的部分,最好拿纸笔把数据页的移动过程自己画一遍流程图,光靠听很难真正记住。把这些原理和实际的参数调试对应起来,到了面试时才能用自己的话把逻辑顺下来,而不是机械地背诵讲义。
课程目录
课程目录80 集
- 1-1 [InnoDB存储引擎类] 课程介绍 (02:52).mp4
- 1-2 [InnoDB存储引擎类] 面试题1:介绍一下InnoDB存储引擎的内存结构? (13:16).mp4
- 1-3 [InnoDB存储引擎类] 面试题2:什么是Buffer Pool ,介绍一下Buffer Pool? (16:57).mp4
- 1-4 [InnoDB存储引擎类] 面试题3:Buffer Pool中是如何管理Page页的? (24:54).mp4
- 1-5 [InnoDB存储引擎类] 面试题4:MySQL中为什么没有采用传统的LRU算法? (20:04).mp4
- 1-6 [InnoDB存储引擎类] 面试题5:MySQL中对LRU算法进行了哪些优化? (15:21).mp4
- 1-7 [InnoDB存储引擎类] 面试题6:介绍一下change Buffer的结构和工作原理 (22:44).mp4
- 1-8 [InnoDB存储引擎类] 面试题7:说一下Log Buffer的工作原理? (13:21).mp4
- 1-9 [InnoDB存储引擎类] 面试题8:MySQL InnoDB是否支持哈希索引? (10:30).mp4
- 1-10 [InnoDB存储引擎类] 面试题9:自适应哈希索引是如何提高查询效率? (28:16).mp4
- 1-11 [InnoDB存储引擎类] 面试题10:说一下InnoDB的磁盘结构中表空间的作用? (39:07).mp4
- 1-12 [InnoDB存储引擎类] 面试题11:什么是写失效,MySQL如何解决写失效问题? (34:30).mp4
- 1-13 [InnoDB存储引擎类] 面试题12:介绍一下MySQL中事务的特性? (39:18).mp4
- 1-14 [InnoDB存储引擎类] 面试题13:介绍一下redo log,它的作用是什么? (21:36).mp4
- 1-15 [InnoDB存储引擎类] 面试题14_事务还没有提交的时候,redo log能不能被持久化到磁盘? (30:42).mp4
- 1-16 [InnoDB存储引擎类] 面试题15:说一下MySQL中脏页落盘的机制? (34:57).mp4
- 1-17 [InnoDB存储引擎类] 面试题16:说一下undo Log日志的作用以及它的工作原理_1? (30:03).mp4
- 1-18 [InnoDB存储引擎类] 面试题16:说一下undo Log日志的作用以及它的工作原理_2? (24:15).mp4
- 1-19 [InnoDB存储引擎类] 面试题17:binlog的作用?binlog和redo log的区别? (20:14).mp4
- 1-20 [InnoDB存储引擎类] 面试题18:说一下binlog的写入流程,为什么崩溃恢复不使用binlog? (25:27).mp4
- 1-21 [InnoDB存储引擎类] 面试题19:如何查看binlog日志? (18:17).mp4
- 1-22 [InnoDB存储引擎类] 面试题20:MySQL8.0版本对比5.7版本有哪些结构的演变? (08:18).mp4
- 1-23 [InnoDB存储引擎类] 面试题21:介绍一下InnoDB的后台线程,各自的作用是什么? (22:41).mp4
- 1-24 [InnoDB存储引擎类] 面试题22:说一下InnoDB表空间文件的结构? (14:33).mp4
- 1-25 [InnoDB存储引擎类] 面试题23:简述一下Page页的结构? (26:19).mp4
- 1-26 [InnoDB存储引擎类] 面试题24:什么是行溢出? (29:27).mp4
- 2-1 [索引和查询优化类] 面试题25:什么是索引,说一下你对索引的理解_1? (39:36).mp4
- 2-2 [索引和查询优化类] 面试题25:什么是索引,说一下你对索引的理解_2? (21:00).mp4
- 2-3 [索引和查询优化类] 面试题26:B+Tree对比B-Tree有哪些优势? (38:23).mp4
- 2-4 [索引和查询优化类] 面试题27 一棵B+Tree可以存放多少数据? (15:07).mp4
- 2-5 [索引和查询优化类] 面试题28 Hash索引有哪些优缺点? (11:51).mp4
- 2-6 [索引和查询优化类] 面试题29 什么是聚簇索引,它与非聚簇索引有什么区别? (19:53).mp4
- 2-7 [索引和查询优化类] 面试题30 什么是回表?如何解决回表问题? (19:48).mp4
- 2-8 [索引和查询优化类] 面试题31 什么是索引下推 (16:32).mp4
- 2-9 [索引和查询优化类] 面试题32 数据库主键的类型如何选择?自增还是UUID (24:43).mp4
- 2-10 [索引和查询优化类] 面试题33:介绍一下MySQL的架构体系? (24:56).mp4
- 2-11 [索引和查询优化类] 面试题34:MySQL的SQL查询的流程? (14:40).mp4
- 2-12 [索引和查询优化类] 面试题35:有没有用过Explain?它都有哪些主要字段? (17:10).mp4
- 2-13 [索引和查询优化类] 面试题36:说一下type字段和extra字段中不同值的含义? (22:20).mp4
- 2-14 [索引和查询优化类] 面试题37:索引在创建的时候有哪些需要注意的地方? (30:45).mp4
- 2-15 [索引和查询优化类] 面试题38:什么是三星索引? (06:36).mp4
- 2-16 [索引和查询优化类] 面试题39:在进行查询时,如何避免使用到的索引失效? (19:57).mp4
- 2-17 [索引和查询优化类] 面试题40:说一下最左前缀法则的底层原理? (05:44).mp4
- 2-18 [索引和查询优化类] 面试题41:MySQL内部支持缓存查询吗? (05:30).mp4
- 2-19 [索引和查询优化类] 面试题42:InnoDB与MyISAM的区别? (11:39).mp4
- 2-20 [索引和查询优化类] 面试题43:哪些情况会导致SQL语句查询性能下降 (21:51).mp4
- 2-21 [索引和查询优化类] 面试题44:如何进行慢查询优化? (30:10).mp4
- 2-22 [索引和查询优化类] 面试题45:InnoDB相关的参数优化有了解过吗? (31:27).mp4
- 2-23 [索引和查询优化类] 面试题46:如何进行JOIN优化? (34:11).mp4
- 2-24 [索引和查询优化类] 面试题47:索引创建时可以选择哪些类型? (09:04).mp4
- 2-25 [索引和查询优化类] 面试题48:如何进行order by优化? (47:32).mp4
- 2-26 [索引和查询优化类] 面试题49:如何进行group by优化? (36:28).mp4
- 2-27 [索引和查询优化类] 面试题50:单表的查询成本如何计算_1? (32:40).mp4
- 2-28 [索引和查询优化类] 面试题50:单表的查询成本如何计算_2? (42:53).mp4
- 3-1 [事务和锁机制类] 面试题51:进行事务控制的方式有哪些? (15:11).mp4
- 3-2 [事务和锁机制类] 面试题52:说一下MVCC的内部细节? (01:00:47).mp4
- 3-3 [事务和锁机制类] 面试题53:介绍一下MySQL事务的隔离级别? (19:28).mp4
- 3-4 [事务和锁机制类] 面试题54:MySQL 的可重复读怎么实现的? (10:33).mp4
- 3-5 [事务和锁机制类] 面试题55:数据库中的锁有哪些? (09:40).mp4
- 3-6 [事务和锁机制类] 面试题56:Repeatable Read 解决了幻读问题吗? (48:01).mp4
- 3-7 [事务和锁机制类] 面试题57:请说一下共享锁和排他锁? (10:52).mp4
- 3-8 [事务和锁机制类] 面试题58:MySQL的binlog有几种日志格式?分别有什么区别? (09:30).mp4
- 3-9 [事务和锁机制类] 面试题59:MySQL线上修改大表结构有哪些风险? (07:45).mp4
- 3-10 [事务和锁机制类] 面试题60:介绍一下数据的设计范式? (24:59).mp4
- 3-11 [事务和锁机制类] 面试题61:InnoDB行锁在什么情况下会升级为表锁? (34:35).mp4
- 3-12 [事务和锁机制类] 面试题62:InnoDB行锁如何进行优化? (13:01).mp4
- 4-1 [经典面试题类] 面试题63:说一下乐观锁的实现方式? (07:25).mp4
- 4-2 [经典面试题类] 面试题64:count(列名)、count(1)和 count()有什么区别? (09:40).mp4
- 4-3 [经典面试题类] 面试题65:说一下MySQL主从复制的作用及原理? (12:18).mp4
- 4-4 [经典面试题类] 面试题66:如何进行分页查询优化? (16:44).mp4
- 4-5 [经典面试题类] 面试题67:MySQL中都有哪几种加锁范围? (43:55).mp4
- 4-6 [经典面试题类] 面试题68:说一下行级锁的分类? (23:54).mp4
- 4-7 [经典面试题类] 面试题69:为什么说 插入、更新、删除操作,都归为当前读? (12:40).mp4
- 4-8 [经典面试题类] 面试题70:说一下MySQL中对于不同的隔离级别和索引类型,行锁采用的加锁方式有什么不同? (36:47).mp4
- 4-9 [经典面试题类] 面试题71:MySQL何时需要进行分库分表? (20:45).mp4
- 4-10 [经典面试题类] 面试题72:MySQL出现死锁怎么办_1? (36:53).mp4
- 4-11 [经典面试题类] 面试题72:MySQL出现死锁怎么办_2? (54:31).mp4
- 4-12 [经典面试题类] 面试题73:update 没加索引会锁全表吗? (14:39).mp4
- 4-13 [经典面试题类] 面试题74:下面操作中,加了什么锁,会导致死锁吗? (48:47).mp4
- 4-14 [经典面试题类] 面试题75:MySQL是怎么加行锁的? (01:12:05).mp4






