Redundant 中 off-page 列处理
对于 Redundant 行格式中比较长的列,只有前 768 字节会被存储在数据行上,剩下的数据会被放入其他页。我们来看一个实例,运行以下 SQL,创建一个测试表,插入测试数据:
drop table if exists long_column_test;
CREATE TABLE long_column_test
(
large_content
varchar(32768) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT;
##长度为 768 字节
insert into long_column_test values (repeat(“az”, 384));
##长度为 8100 字节
insert into long_column_test values (repeat(“az”, 4050));
##长度为 32768 字节
insert into long_column_test values (repeat(“az”, 16384));
我们使用 64 进制编码器查看表文件 long_column_test.ibd
,可以看到第一条数据是一条正常的数据,其存储和之前我们讲的 Redundant 列存储一样,没有特殊的:
所有字段长度列表(8字节,4列,一个数