MYSQL学习笔记2-数据存储

在整个数据库体系结构中,我们可以使用不同的存储引擎来存储数据,而绝大多数存储引擎都以二进制的形式存储数据。在 InnoDB 存储引擎中,所有的数据都被逻辑地存放在表空间中,表空间(tablespace)是存储引擎中最高的存储逻辑单位,在表空间的下面又包括段(segment)、区(extent)、页(page):

引用:https://blog.****.net/xingor/article/details/104912767

表的存储结构:

表空间 段(索引=索引段+数据段) 区=1M=64个页 , 页(16k,叶子节点)。

1页至少2条数据。

MYSQL学习笔记2-数据存储MYSQL学习笔记2-数据存储

 

段:表空间是由各个段组成的,常见的段有数据段、索引段、回滚段等。因为InnoDB存储引擎表是索引组织的(index organized),因此数据即索引,索引即数据,那么数据段即为B+树的叶子节点(Leaf node segment),索引段即为B+树的非索引节点(Non-leaf node segment)。

区:是由连续页组成的空间,在任何情况下每个区的大小都为1MB。 InnoDB存储引擎一次从磁盘申请4~5个区;

还有一点值得注意的是,实际在每个段刚开始时,数据的插入会先使用32个页大小的碎片页(fragment page)来存放数据,在这些碎片页耗尽之后才是区的申请创建。

逻辑存储结构与索引树结构的关联

InnoDB的逻辑存储结构被大致划分成表空间、段、区、页、行记录等概念,这些概念是怎么在B+树索引中进行体现;

 

MYSQL学习笔记2-数据存储