CSNotesCSNotes
TODO
数据库
Java
SSM
React
学习路线
分布式
Redis
实用工具
GitHub
TODO
数据库
Java
SSM
React
学习路线
分布式
Redis
实用工具
GitHub
  • 第一阶段 SQL 语法与使用

    • 一、MySQL 语法基础
    • 二、多表查询与笛卡尔积
    • 三、JOIN 类型与算法
    • 四、LIKE 通配符与正则
    • 五、GROUP BY/HAVING /窗口函数
    • 六、字段类型与选型
    • 七、约束、主键与 DDL 语法
  • 第二阶段 SQL 执行与优化

    • 一、一条建表语句是如何执行的?
    • 二、EXPLAIN 执行计划
  • 第三阶段 数据存储结构(MyDB 轮子核心)

    • 一、字符集与 CHAR/VARCHAR 存储
    • 二、最大行大小 65535 bytes
    • 三、为什么 VARCHAR 上限是 16383?
    • 四、表、页与 Page Header 概念
    • 五、InnoDB 行格式 COMPACT
    • 六、磁盘空间管理器
  • 第四阶段 索引与数据结构

    • 一、为什么是 B+ 树?
    • 二、B+ 树插入、分裂、合并的完整过程
    • 三、容量计算:一颗高度为 3 的 B+ 树能存多少条数据?
    • 四、索引分类(聚簇/二级/联合/覆盖)
    • 五、联合索引 + 最左匹配原则
    • 六、索引失效 7 大场景
    • 七、索引创建策略:三星索引法
  • 第五阶段 事务、MVCC 与并发控制

    • 一、事务
    • 二、事务的本质(内核视角)
    • 三、MVCC 多版本快照读
    • 四、死锁四条件
    • 五、一条 INSERT 语句背后在干吗?
  • 第六阶段 预写日志 WAL 与崩溃恢复

    • 一、预写日志 WAL(Redo/Undo)
  • 第七阶段 数据建模与范式

    • 一、数据建模范式(入门版)
    • 二、数据建模范式(进阶版)
  • 第八阶段 数据库概念全景

    • 一、数据库/DBMS/SQL 全景定义
  • 第九阶段 常见面试题专题(占位:待补)

五、InnoDB 行格式 COMPACT

以记录为单位向表中插入数据,这些记录在磁盘上的存放形式也被称为行格式。

四种行格式:分为

(一)COMPACT 行格式

(二)DYNAMIC 行格式

数据库从磁盘中读写以块为单位 因为根据局部性原理。

记录被存放在数据页中。

那么记录怎样排序呢

(三)分组

Infimum 伪记录单独分为 1 个组

Supremum 伪记录所在分组记录条数只能在 1~8 条之间

其余分组的记录条数只能在 4~8 条之间。

每个组有一个组长和几个组员。组长的 n_owned 值记录本组成员个数。

(四)主键索引

按照主键的大小对用户记录和数据页进行排序,记录用单向链表进行连接,数据页用双向链表进行连接。

主键索引是根据主键查数据

二级索引是根据 A 列查主键,再根据主键查数据

联合索引是根据 A、B 两列查主键,再根据主键查数据

编辑此页
上次更新: 2026/9/18 20:24
Prev
四、表、页与 Page Header 概念
Next
六、磁盘空间管理器