MySQL存储引擎内部之:`InnoDB`的`记录`格式:`Compact`、`Dynamic`和`Redundant`格式的详细区别。

MySQL InnoDB 记录格式深度剖析:Compact、Dynamic 和 Redundant 大家好,今天我们来深入探讨 MySQL InnoDB 存储引擎中记录格式的奥秘,重点关注 Compact、Dynamic 和 Redundant 这三种格式的区别。理解这些格式对于优化数据库性能、更好地利用存储空间至关重要。 一、InnoDB 记录结构概览 在深入了解具体格式之前,我们先对 InnoDB 记录的整体结构有个基本的认识。InnoDB 使用 B+ 树来组织数据,每个节点包含多个记录,这些记录按照主键排序。一条 InnoDB 记录主要包含以下几个部分: 记录头信息 (Record Header): 包含一些控制信息,如记录的删除状态、next_record 指针等。 真实数据 (Actual Data): 存储记录的实际数据,包括所有用户定义的列的值。 其他信息: 可能包含一些辅助信息,例如 NULL 值列表(用于处理允许为 NULL 的列)和变长字段长度列表(用于处理 VARCHAR、TEXT、BLOB 等变长类型)。 二、Redundant 记录格式 Redundant 是 …