文章根据《MySQL技术内幕:InnoDB存储引擎(第二版)》、掘金小册《MySQL是怎样运行的:从根儿上理解MySQL》 两本书得到的总结
文章图片均截图自《MySQL技术内幕:InnoDB存储引擎(第二版)》
本篇文章将介绍MySQL表的逻辑存储及实现,也就是数据在表中如果组织和存放的。
表的概述
表就是关于特定实体的数据集合,这也是关系数据库模型的核心。
索引组织表
在innodb存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。
每张表都有主键,若没有则会按如下方式选择或创建主键:
- 首先判断表中是否有非空的唯一索引(unique not null)如果有,则该列即为主键
- 如果不符合上述条件,innodb存储引擎自动创建一个6字节的指针
- 当表中有多个非空唯一索引时,innodb存储引擎将选择建表时第一个定义的非空唯一索引为主键
InnoDB存储逻辑结构
所有数据都逻辑地存放在一个空间内,这个空间就是我们所说的表空间,表空间可以看做成InnoDB存储引擎逻辑结构的最高层,结构图如下(表截图自《MySQL技术内幕:InnoDB存储引擎(第二版)》)
© 著作权归作者所有
举报
发表评论
0/200