数据库表中的行格式决定了数据在物理存储时的布局方式,进而对查询和DML操作的性能产生影响。
在InnoDB存储引擎中,常见的行格式主要包括以下四种:
图片
COMPACT适用于处理大量包含可变长度列(如VARCHAR、VARBINARY、BLOB和TEXT类型)数据。
对于可变长度列,前768字节的数据存储在B树节点的索引记录中,超出部分存储在溢出页中。大于或等于768字节的固定长度列会被编码为可变长度列,可以存储在页外。
图片
image.png
对比:
行格式 |
紧凑的存储特性 |
增强的可变长度列存储 |
大索引键前缀支持 |
压缩支持 |
支持的表空间类型 |
所需文件格式 |
REDUNDANT |
否 |
否 |
否 |
否 |
system, file-per-table, general |
Antelope or Barracuda |
COMPACT |
是 |
否 |
否 |
否 |
system, file-per-table, general |
Antelope or Barracuda |
DYNAMIC |
是 |
是 |
是 |
否 |
system, file-per-table, general |
Barracuda |
COMPRESSED |
是 |
是 |
是 |
是 |
file-per-table, general |
Barracuda |