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位的数据头以及真实数据是如何存储的的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:一位的最小数据类型

mysql数据类型

psbit.py文件-显示32位或64位的应用程序

计算机存储的最小单位是字节byte,不是位bit

mysql按位的索引判断位的值

Mysql:如何查询类型为位的列?