type
status
date
slug
summary
tags
category
icon
password
- Dynamic:这是 InnoDB 存储引擎在 MySQL 5.7 及以后版本中的默认行格式。Dynamic 行格式非常适合处理包含可变长度字段(如
VARCHAR
,BLOB
,TEXT
)的表,因为它会根据数据的实际长度动态分配空间,从而有效地节约存储空间。
- Compact:这是早期版本的 MySQL 中的默认行格式。与 Dynamic 行格式相比,Compact 行格式在处理溢出页时稍微有些不同。它也支持可变长度字段,但相对于 Dynamic 行格式来说,它在存储效率上略逊一筹。
- Compressed:Compressed 行格式为 InnoDB 表提供了透明的数据压缩功能。它可以帮助减少磁盘空间的使用,尤其是在处理大型数据集时。使用 Compressed 行格式可以在一定程度上提高I/O效率,但会增加 CPU 的负担,因为数据在读取和写入时需要被压缩和解压缩。
- Redundant:这是 InnoDB 的一种较老的行格式,主要用于与早期版本的 MySQL 兼容。Redundant 行格式的存储效率不如 Compact 和 Dynamic 行格式,且在新版本的 MySQL 中已经很少使用。
在 MySQL 8.0 中,Dynamic 行格式通常是最佳选择,因为它提供了良好的存储效率和性能。而在处理需要高压缩比的大数据时,可以考虑使用 Compressed 行格式。
要指定或更改 InnoDB 表的行格式,可以在创建表时使用
ROW_FORMAT
选项,或者通过 ALTER TABLE
语句更改现有表的行格式。例如:或者:
- 作者:奥利弗
- 链接:https://www.aolifu.org/article/mysql_row_format
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。