InnoDB维护了一个逻辑空间叫表空间
向上对接开发者,向下对接物理文件
当创建表时,会自动为表创建一个对应表名的表空间,并在数据库目录下生成一个“表名.ibd”的表空间文件。
存储结构
物理存储图 page页 extent区 sagement段 书页,一本书,一套书的关系
最小存储单元是页 , 一个页对应B+树一个节点
一个区包括多个页 ,一个段包括多个区
一个page默认大小16kb,区默认大小1M
页
1.innodb中io操作的最小单位。
2.每个页都有一个对应的从0开始的编号,这个编号叫做页号。因为表空间的数据文件会被划分成大小相等的页,所以知道页号,再根据文件的初始位置,就可以计算出页在磁盘中的准确地址。
3.一张表对应一个聚集索引,而聚集索引元数据中指定了root page的页号,因此Innodb引擎可以根据页号和页大小计算出索引B+树root page的准确地址,从而对整个表数据进行操作。
4.段、区都是为了管理空间的存储状态,为页分配空间服务,真正的查询只需要通过Page No和B+树中各级节点的关联关系就可以操作整个表物理空间上的数据。
从B+树索引来看
1.一个表的聚簇索引分为两个段,包含数据的叶子节点的数据段,不包含数据的节点的索引段
2.索引段的page存的是key+指针,数据段的page存的是数据行
3.一个page默认16k,一个索引段的page大约能存1170个索引指针(一个索引指针key占8字节,指针占6字节),