MySQL:25 磁盘文件中,40个bit位的数据头以及真实数据是如何存储的
Posted 鮀城小帅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,这个是指向他下一条数据的指针。
以上是关于MySQL:25 磁盘文件中,40个bit位的数据头以及真实数据是如何存储的的主要内容,如果未能解决你的问题,请参考以下文章