段的结构 (4)---独立表空间结构(三十)

本文深入探讨了MySQL的存储结构,包括表空间、区段(free, free_frag, full_frag)的管理,以及XDES(Extent Descriptor Entry)和INODE(Segment Entry)在其中的角色。详细解析了FSP_HDR页面如何存储表空间的元数据,以及段的inodeentry结构。内容涵盖了数据存储、空间分配和管理的关键概念。
摘要由CSDN通过智能技术生成

前面我们说到了,为了方便管理区,区又分为free碎片空闲区,free_frag有剩余页的碎片空闲区,full_frag无剩余页的碎片空闲区,fseg附属于某个段的整个区。

当存入数据时候不是在遍历,而是先从free_frag的extent descriptor entry ,简称xdes Entry的链表是否为空,空的话则从free的xdes entry链表申请新的碎片区,升级到free_frag,修改state状态,每个里面有一个特定的segmentId。

Fseg分了区分出某个段的区,里面又分为free的xdes entry链表,not_free的xdes entry链表,及其full的xdes entry区,当出现32个完整碎片区时候,就会先判断当前段的not free链表是否为空。

一个索引分为叶子节点段,和非叶子节点段,一个段又有三个xdes entry链表,所以2个索引又4个段,12个链表,表直属空间结构也有三个extend descriptor enrty链表,所以一共15个xdes entry。

区的分类&XDES Entry(3)---独立表空间结构(二十九)

段的结构

我们都知道段包含零碎的页面又包含完整的区组成。每个区都又xdes entry来记录区的属性位子,mysql为了记录段的属性,就设计了INODE entry来记录。

  1. segmentId:8个字节,段唯一的id编号。
  2. not_full_n_used:4个字节,这个字段表示在not_full链表中已经使用多少个页面。
  3. 三个list_base_node:分别记录了三个段链表,free链表(16个字节),not_full链表(16个字节),full链表(16个字节)。
  4. Magic Number:4个字节,用来标记inode entry是否被初始化,(初始化:吧各个字段的值都填进去)。规定了,当这个字段的值是97937874,则被初始化,否则没有被初始化。
  5. Fragment Array Entry:这里是一些零散页面和一些完整区的集合,每个fragment array entry都对应着一个零散页面。
     

到目前为止,我们已经清楚了表空间,区段,xdes entry,inode entry等链表的基本概念,那每个区对应的xdes entry到底存在表空间什么地方?直属于表空的free,free_frag,full_frag链表又存在什么地方?每个段的inode entry又存在表空间的什么地方?我们前面说了一个页16kb,64个页为一个区,256个区为一个组,别急,接下来从页慢慢分析。

FSP_HDR类型

首先看第一组的第一个页面,页号为0,extent0,当然也是表空间的第一个页面,页面类型是FSP_HDR,存储着表空间内的一些整体属性和第一组内256个区对应的xdes entry结构。

一个完整的FSP_HDR类型页面大致由五个部分组成:

  1. file_header:38个字节,页的一些通用信息。
  2. file_space_header:112个字节,表空间的一些整体属性信息。
  3. xdes_entry:10240字节,存储本组256个区对应的属性信息。
  4. entry_space:5986字节,用于页结构的填充,没啥实际意义。
  5. file trailer:8个字节,效验是否完整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后端从入门到精通

你的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值