网站开发公司一站式服务,wordpress修改评论,电子商务有限公司名字大全,北京做手机网站的公司表空间 是一个抽象的概念#xff0c;对于系统表空间来说#xff0c;对应着文件系统中一个或多个实际文件#xff1b;对于每个独立表空间来说#xff0c;对应着文件系统中一个名为 表名.ibd 的实际文件。大家可以把表空间想象成被切分为许许多多个 页 的池子#xff0c;当我…表空间 是一个抽象的概念对于系统表空间来说对应着文件系统中一个或多个实际文件对于每个独立表空间来说对应着文件系统中一个名为 表名.ibd 的实际文件。大家可以把表空间想象成被切分为许许多多个 页 的池子当我们想为某个表插入一条记录的时候就从池子中捞出一个对应的页来把数据写进去。 
9.1 温习 
9.1.1 页面类型 
InnoDB是以页为单位管理存储空间的我们的聚簇索引也就是完整的表数据和其他的二级索引都是以 B 树的形式保存到表空间的而 B 树的节点就是数据页。我们前边说过这个数据页的类型名其实是 FIL_PAGE_INDEX 除了这种存放索引数据的页面类型之外InnoDB也为了不同的目的设计了若干种不同类型的页面为了唤醒大家的记忆我们再一次把各种常用的页面类型提出来 类型名称  十六进制  描述  FIL_PAGE_TYPE_ALLOCATED  0x0000  最新分配还没使用  FIL_PAGE_UNDO_LOG  0x0002  Undo日志页  FIL_PAGE_INODE  0x0003  段信息节点  FIL_PAGE_IBUF_FREE_LIST  0x0004  Insert Buffer空闲列表  FIL_PAGE_IBUF_BITMAP  0x0005  Insert Buffer位图  FIL_PAGE_TYPE_SYS  0x0006  系统页  FIL_PAGE_TYPE_TRX_SYS  0x0007  事务系统数据  FIL_PAGE_TYPE_FSP_HDR  0x0008  表空间头部信息  FIL_PAGE_TYPE_XDES  0x0009  扩展描述页  FIL_PAGE_TYPE_BLOB  0x000A  BLOB页  FIL_PAGE_INDEX  0x45BF  索引页也就是数据页  
页面类型前边都有个 FIL_PAGE 或者 FIL_PAGE_TYPE 的前缀为简便起见我们后边唠叨页面类型的时候就把这些前缀省略掉了比方说 FIL_PAGE_TYPE_ALLOCATED 类型称为 ALLOCATED 类型 FIL_PAGE_INDEX 类型称为INDEX 类型。 
9.1.2 页面通用部分 
数据页也就是 INDEX 类型的页由7个部分组成其中的两个部分是所有类型的页面都通用的。当然我不能寄希望于你把我说的话都记住所以在这里重新强调一遍任何类型的页面都有下边这种通用的结构 从上图中可以看出任何类型的页都会包含这两个部分 
File Header 记录页面的一些通用信息 
File Trailer 校验页是否完整保证从内存到磁盘刷新时内容的一致性。 
对于 File Trailer 我们不再做过多强调全部忘记了的话可以到将数据页的那一章回顾一下。我们这里再强调一遍 File Header 的各个组成部分 名称  占用空间大小  描述  FIL_PAGE_SPACE_OR_CHKSUM  4 字节  页的校验和checksum值  FIL_PAGE_OFFSET  4 字节  页号  FIL_PAGE_PREV  4 字节  上一个页的页号  FIL_PAGE_NEXT  4 字节  下一个页的页号  FIL_PAGE_LSN  8 字节  页面被最后修改时对应的日志序列位置英文名是Log SequenceNumber  FIL_PAGE_TYPE  2 字节  该页的类型  FIL_PAGE_FILE_FLUSH_LSN  8 字节  仅在系统表空间的一个页中定义代表文件至少被刷新到了对应的LSN值  FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID  4 字节  页属于哪个表空间  
表空间中的每一个页都对应着一个页号也就是 FIL_PAGE_OFFSET 这个页号由4个字节组成也就是32个比特位所以一个表空间最多可以拥有2³²个页如果按照页的默认大小16KB来算一个表空间最多支持64TB的数据。表空间的第一个页的页号为0之后的页号分别是123...依此类推 
某些类型的页可以组成链表链表中的页可以不按照物理顺序存储而是根据 FIL_PAGE_PREV 和FIL_PAGE_NEXT 来存储上一个页和下一个页的页号。需要注意的是这两个字段主要是为了 INDEX 类型的页也就是我们之前一直说的数据页建立 B 树后为每层节点建立双向链表用的一般类型的页是不使用这两个字段的。 
每个页的类型由 FIL_PAGE_TYPE 表示比如像数据页的该字段的值就是 0x45BF 我们后边会介绍各种不同类型的页不同类型的页在该字段上的值是不同的。