InnoDB存储引擎中,表根据主键顺序存放,这种存储方式的表称为索引组织表
所有数据都被放在表空间中,表空间包括段,段中是区,区中是页/块,页中是行
常见段有数据段,索引段,回滚段
数据段就是B+树的叶子节点,索引段就是B+树的非叶子节点
区是由连续的页组成,大小为1MB,默认情况下一个页16KB,一个区中有64个连续的页
页是磁盘管理的最小单位,常见的页有数据页,undo页,系统页等
行,数据是按行进行存放的(?但是为什么说是面向列的呢?)
数据页包括七个部分
1.File Header 记录页的头信息 38字节
2.Page Header 记录页的状态信息 56字节
3.Infimun,Supremum Records 虚拟行记录,限定记录边界
4.User Records 行记录 实际存储内容
5.Free Space 空闲空间
6.Page Directory 记录的相对位置(不是偏移量)
7.File Trailer 检测页是否完整写入磁盘 8字节
B+树索引本身只能找到记录所在的页,不能直接找到记录,数据库把页加载到内存,在再通过Page Directory(页目录)进行二叉树查找