IT袋

当前位置:主页 > 经验教程 > 硬件教程 >

InnoDB磁盘结构详解

InnoDB磁盘结构详解 深入探究InnoDB的磁盘结构(4)

时间:2023-09-23 23:35:19 来源:IT袋 作者:苏晓敏
导读:InnoDB磁盘结构详解,数据布局 针对VARCHAR、TEXT、BLOB这类变长字段,列中实际存储了多少数据是不固定的,因此除了要把数据本身存下来,还需要记下它的长度。 如果字段值为

InnoDB磁盘结构详解

InnoDB磁盘结构详解

数据布局

  • 针对VARCHAR、TEXT、BLOB这类变长字段,列中实际存储了多少数据是不固定的,因此除了要把数据本身存下来,还需要记下它的长度。
  • 如果字段值为NULL,其并不占该部分任何空间,除了占有NULL标志位,故两个字段为NULL就占用2bit。
  • 头信息中包括删除标记、当前记录是否是分组中的最后一条、当前记录在页中的相对位置、记录类型(0:普通记录,1:B+树非叶子节点目录项记录,2:Infimum记录,3:Supremum记录)、下一条记录的相对位置等。
  • 每行数据除了用户定义的列外,还有3个隐藏列,包括trx_id列和roll_pointer列(见下文),分别为6字节和7字节的大小,若表没有定义主键,每行还会增加一个6字节的rowid列。

注意,索引也是按这种方式存储的:

  • 对于聚簇索引,非叶子节点包含主键和child page number,叶子节点包含主键和具体的行;
  • 对于非聚簇索引,也就是二级索引,非叶子节点包含二级索引和child page number,叶子节点包含二级索引和主键值。

以上IT袋网网介绍的InnoDB磁盘结构详解的详细讲解,仅供大家参考建议!

相关阅读