Innodb记录结构

本文介绍了InnoDB存储引擎的页结构,并详细解析了Compact和Redundant两种行格式,包括行溢出数据的概念。讨论了不同行格式如何处理变长字段,特别是对于VARCHAR和CHAR(M)类型的存储方式,以及行数据的最大限制。
摘要由CSDN通过智能技术生成

Innodb页简介

innodb存储引擎以页为单位与磁盘进行数据交换,每页16k,每次存取页的整倍数,这样做提高数据存取效率。每个逻辑页放的一个个记录。

Innodb行格式

以记录为单位向表中插入数据,记录在数据库存放的格式叫做行格式。innodb有各种行格式:CompactRedundantDynamicCompressed行格式。

指定行格式:

CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称

ALTER TABLE 表名 ROW_FORMAT=行格式名称

compact行格式

image_1c9g4t114n0j1gkro2r1h8h1d1t16.png-42.4kB

如图所示,分两个部分:记录额外信息,记录真实数据。

变长字段长度列表:记录各个变长的列存储的数据字节数。使用1或者2个字节记录列存储的字节长度,所以理论上一个列varchar(m),最多存储65535个字节,因为两个字节最多记录65535的长度,实际还是有差别的。到底使用1字节还是2字节记录长度,跟使用字符集编码,最多存储字符数有关。变长字段长度列表顺序与列的顺序相反。

NULL值列表:记录允许为NULL的各个列实际存储数据是否为null的标识位,1为null,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值