【MySQL 数据宝典】【磁盘结构】- InnoDb 数据文件-Page结构、行记录格式

一、 数据文件

1.1 表空间文件结构

34.jpg
InnoDB表空间文件结构主要包括:Tablespace(表空间)、Segment(段)、Extent(区)、Page(页)、Row(行)。

Tablespace(表空间)
  1. 表空间是InnoDB存储引擎逻辑结构的最高层,用于存储多个ibd数据文件,用于存储表的记录和索引。一个文件包含多个段。
  2. 表空间分为:系统表空间、独占表空间、通用表空间、临时表空间、Undo表空间。
Segment(段)
  1. 段是磁盘上空间分配和回收的申请者,是一个逻辑概念,用来管理物理文件,段是为了保持叶子节点在磁盘上的连续,可以实现更好的顺序I/O操作。
  2. 常见的段有数据段、索引段、回滚段等。其中索引段就是非叶子结点部分,而数据段就是叶子结点部分,回滚段用于数据的回滚和多版本控制。
Extent(区)
  1. 区是由连续页组成的空间,每个区的默认大小都是1MB,一个区中有64个连续的页。为了保证区中页的连续性,扩展的时候InnoDB存储引擎一次从磁盘申请4~5个区。
Page(页)
  1. 页是区的基本组成单元,用于存储数据。默认每一个页的存储大小为16k。包含了多种类型的页,如数据页、undo页、系统页、事务数据页、大的BLOB对象页等。
Row(行)
  1. InnoDB的数据是按行进行存放的,每个页存放的行记录最多允许存放16KB / 2 -200行的记录,即7992行记录。每行记录根据不同的行格式、不同的数据类型,会有不同的存储方式。
  2. 行包含了记录的字段值、事务ID、回滚指针、字段指针等信息。

1.2 Page 结构

InnoDB存储引擎的Page是整个存储系统的最小单位,用于存储数据库相关的所有内容,包括数据行记录、系统信息等。
Page分为几种类型,常见的页类型有数据页(B+tree Node)Undo页(Undo Log Page)系统页(System Page) 事务数据页(Transaction System Page)等
36.jpg

名称 占用大小 说明
File Header 38字节 文件头, 描述页信息
Page Header 56字节 页头,页的状态
Infimum + Supremum 26字节 最大和最小记录,这是两个虚拟的行记录
User Records 不确定 用户记录,存储数据行记录
Free Space 不确定 空闲空间,页中还没有被使用的空
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值