一个表空间可以有多个文件,每个文件都有各自的编号,创建一个表空间时,至少有一个文件,这个文件被称为“0号文件”。一个文件是被切割为等长“默认16KB”的块,这个块通常被称为页面,那么在“0号文件”的第一个页面(page_no为0)中,存储了这个表空间中所有段簇也管理的入口,那么在这��页面存储的数据就是16KB,但通常会有页面头信息会占用一些空间,真正的管理信息数据是从页面偏移为fil_page_data(38)的位置开始的,这个位置存储了表空间的描述信息;
---注意:
①:表空间控制信息有:满簇链表、半满簇链表、空闲簇链表,而段的inode信息中也有这些信息;表空间中的链表管理的是整个表空间中所有的簇,包括满 簇、半满簇及空闲簇,而段的iNode信息中管理的是属于自己段中的满簇、半满簇及空闲簇。
②:在innodb中,一个簇描述页面要管理16384个页面,簇大小默认为(fsp_extent_size)64个,而簇描述符的大小为40B,所以一个簇描述页面中可以描述的簇的个数为(univ_page_size-页面头长度)/40,其中univ_page_size=16384B表示页面大小;在一个表空间中,簇描述页面的存储是每隔16384个页面就有一个簇描述页面,所以簇描述页面中只需要描述16384个页面即可;
③:所谓的btr,在innodb中,表示的就是B+树的处理,不管以它为开头的是函数,还是文件,都是相关的处理,是Btree的简称;
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx