深入理解InnoDB(7)—系统表空间

系统表空间

image.png
可以看到,系统表空间和独立表空间的前三个页面(页号分别为0、1、2,类型分别是FSP_HDR、IBUF_BITMAP、INODE)的类型是一致的,只是页号为3~7的页面是系统表空间特有的

  • 页号3 SYS: Insert Buffer Header 存储Insert Buffer的头部信息
  • 页号4 INDEX: Insert Buffer Root 存储Insert Buffer的根页面
  • 页号5 TRX_SYS: Transction System 事务系统的相关信息
  • 页号6 SYS: First Rollback Segment 第一个回滚段的页面
  • 页号7 SYS: Data Dictionary Header 数据字典头部信息

1.SYS: Data Dictionary Header

记录4个表(SYS_TABLES、SYS_COLUMNS、SYS_INDEXES、SYS_FIELDS)的聚簇索引和二级索引对应的B+树位置.只要有了上述4个基本系统表,也就意味着可以获取其他系统表以及用户定义的表的所有元数据。

比方说我们想看看SYS_TABLESPACES这个系统表里存储了哪些表空间以及表空间对应的属性,那就可以:

  1. 到SYS_TABLES表中根据表名定位到具体的记录,就可以获取到SYS_TABLESPACES表的TABLE_ID

  2. 使用这个TABLE_ID到SYS_COLUMNS表中就可以获取到属于该表的所有列的信息。

  3. 使用这个TABLE_ID还可以到SYS_INDEXES表中获取所有的索引的信息,索引的信息中包括对应的INDEX_ID,还记录着该索引对应的B+数根页面是哪个表空间的哪个页面。

  4. 使用INDEX_ID就可以到SYS_FIELDS表中获取所有索引列的信息。

image.png

1.1 File Header

记录 页的一些通用信息

1.2 Data Dictionary Header

记录一些基本系统表的根页面位置以及InnoDB存储引擎的一些全局信息

1.3 Segment Header

记录本页面所在段对应的INODE Entry位置信息

1.4 Empty Space

用于页结构的填充,没啥实际意义

1.5 File Trailer

用于校验页是否完整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值