MySQL原理 - InnoDB引擎 - 行记录存储 - Off-page 列

本文探讨了MySQL InnoDB引擎中行记录存储的Off-page列情况,特别是针对Redundant行格式。当列长度超过特定阈值时,数据会存储在overflow页上,形成链表结构。主要关注何时列会变成off-page列、overflow页如何存储及适用于哪些列类型,如varchar、varbinary、text、blob等。
摘要由CSDN通过智能技术生成

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 列存储一样,没有特殊的:

image

所有字段长度列表(8字节,4列,一个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值