学习mysql2

InnoDB记录存储结构

InnoDB⾏格式

COMPACT
在这里插入图片描述
当编码格式为定长场景下
可变长字段列表:比较常用的varchar或者text等类型,char,int类型为定长字段
NULL值列表:NOT NULL或者主键的情况下,是不会在NULL值列表产生数据的,每个可能为NULL的字段,都会单独对应一个二进制位,当然规定的情况下,必须为整数位,<8的情况下用一个字节,不足位补0
当编码格式为不定长的情况下
可变长字段列表:所有的字段都有可能会把占用字节数据,放到可变长字段列中

可变长字段占用的字节数:假设该编码为gbk占用的最大子节数2,字符长度限制100。那么其预计的最大占用字节数为200,200<256的情况下,用1字节就能表示其占用的字节数。当然在预计占用字节数>256的情况下,如果实际占用数<128的情况下,依旧用1字节表示其占用数。
可变长字段列表的特性:在一列中分两部分占用字节,一部分为占用字节数放在头尾,另一部分为实际数据存在数据列中。另外和NULL值列表有同样的特征,各变长字段数据占⽤的字节数按照列的顺序逆序存放

记录头信息:由5个字节组成,40个二进制位,主要讲几个参数来了解记录头内存储的内容
delete_mask1来记录该列是否被删除
record_type 3 表⽰当前记录的类型,0表⽰普通记录,1表⽰B+树⾮叶⼦节点记录,2表⽰最⼩记录,3表⽰最⼤记录
next_record 16 表⽰下⼀条记录的相对位置

隐藏列:主要包括三列rowId,transationId,rollbackPoint
row_id : 当数据库没有指定唯一主键的情况下,数据库默认会在表中加入默认主键,当然我们也可以指定不需要这一列
transation_id:事务id
rollbackPoint:回滚端点

Redundant

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值