mysql Innodb页和记录

本文深入探讨了InnoDB存储引擎的数据页结构,包括页的大小、不同类型的页以及数据页中的记录结构。重点介绍了记录的属性如delete-flag、n_owned等,并详细阐述了删除记录操作对next_record的影响。此外,还讲解了页目录(PageDirectory)的组织方式,以及页满后的插入操作。最后,对比了B树与B+树的区别,强调了B+树在数据库中的优势。
摘要由CSDN通过智能技术生成

Page-页

描述

  1. 为了避免一条一条读取磁盘数据,InnoDB采取页的方式,作为磁盘和内存之间交互的基本单位,从而提高mysql的性能。
  2. 一个页的大小一般是16KB。
  3. InnoDB为了不同的目的而设计了多种不同类型的页,比如:存放表空间头部信息的页、存放undo日志信息的页等等。我们把存放表中数据记录的页,称为索引页or数据页。

InnoDB数据页结构

在这里插入图片描述

往数据页中存储数据(也叫“记录”)

在这里插入图片描述

记录结构

在这里插入图片描述
delete-flag:0是未删除,1是已删除
min-rec-flag:在B+树当中只有非叶子节点的时候才会被标记
n_owned:只有在组里面排最后一条记录的时候,这条记录的n_owned才会被维护,n_owned是组的数量。
heap_no:页面堆的相对位置
record_type:记录类型

  1. 0:普通类型
  2. 1:B+树当中非叶子节点的目录项记录
  3. 2:数据页当中的最小记录
  4. 3:数据页当中的最大记录

next-record:指向下一条记录

删除记录操作对next_record的影响

在这里插入图片描述
Innodb的删除记录操作,

  1. n_owned在会减1,反之增加一条记录会加1
  2. 被删除的记录delele_flag会标记为1
  3. heap_no在初始化页的时候就标记好了不会进行改变
  4. min_rec_flag这里都是叶子节点所有不会被维护都是0
  5. 删除一条记录之后该记录的头节点会指向该记录的下一个节点

Page Directory——记录在页中的展现(页目录)

在这里插入图片描述

  1. infmum单独一条记录为一组
  2. supremum这组记录可以是1-8条记录
  3. 剩下的分组中记录的条数范围只能在是 4~8 条之间

页满后的插入操作

在这里插入图片描述
当页插满之后,会重新申请一个页把,记录迁移到新的页当中去

B树和B+树的区别(阶数=5)

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值