MySQL:25 磁盘文件中,40个bit位的数据头以及真实数据是如何存储的

在每一行数据存储的时候,还有着40个bit位的数据头存储着,这个数据头是用来描述这行数据的。

这40个bit位里,第一个bit位和第二个bit位,都是预留位,是没任何含义的。

接下来有一个bit位是delete_mask,它标识了这行数据是否被删除了。在MySQL里删除一行数据的时候,未必是立马把它从磁盘上清理掉,而是给他在数据头里搞1个bit标记它已经被删了。

再下一个bit位是 min_rec_mask,这个bit位是说在B+树里每一层的非叶子节点里的最小值都有这个标记,后续深入理解。

再接着有4个bit位是n_owned,它记录了一个记录数,后续深入理解。

再接着有13个bit位是 heap_no,它代表的是当前这行数据在记录堆里的位置,后续深入理解。

然后是3个bit位的record_type,这就是说这行数据的类型。

0代表的是普通类型,1代表的是B+树非叶子节点,2代表的是最小值数据,3代表的是最大值数据。后续深入理解。

最后是16个bit的next_record,这个是指向他下一条数据的指针。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值