面试题答案
一键面试Compact格式
- 特点:
- 存储紧凑:设计目的在于尽可能减少存储空间的占用,对变长字段采用更高效的存储方式。比如 VARCHAR 类型数据,只存储实际数据长度而非固定长度,节省空间。
- 首部信息优化:记录头信息固定为 5 字节,包含众多状态和控制信息,如删除标记、记录类型等,以紧凑二进制位方式存储,提高存储效率。
- 溢出页处理:对于过长的字段,部分数据会被存储到溢出页,原记录处仅保留 20 字节指针指向溢出页数据,解决大字段存储问题。
- 适用场景:适用于存储空间相对紧张,对数据存储密度要求较高的场景。例如日志记录系统、数据仓库中的一些历史数据存储表,这类系统中数据量庞大,对空间利用率要求高,Compact 格式能有效降低存储成本。
Redundant格式
- 特点:
- 兼容性好:是早期 InnoDB 存储引擎使用的行记录格式,主要用于兼容旧版本的数据库系统,在老版本 MySQL 中广泛应用。
- 存储结构相对简单:相比 Compact 格式,其记录头信息和数据存储方式相对直观,但不够紧凑,会占用更多存储空间。例如对于变长字段,它采用的长度表示方式可能不如 Compact 高效。
- 适用场景:一般用于需要与旧版本 MySQL 数据库进行交互,或在升级数据库存在困难时,确保数据能够正常读写的场景。比如一些遗留系统,由于业务原因暂时无法升级数据库版本,只能继续使用 Redundant 格式。