首页 > 数据库技术 > 详细

InnoDB逻辑存储结构

时间:2019-08-29 13:17:29      阅读:71      评论:0      收藏:0      [点我收藏+]

Reference: https://time.geekbang.org/column/article/121710 

 

InnoDB逻辑存储结构

InnoDB逻辑存储结构分为表空间(Tablespace)、段(Segment)、区(Extent)、页Page)以及行(row)

技术分享图片

1. 表空间(Tablespace)

InnoDB提供了两种表空间存储数据的方式,一种是共享表空间,一种是独占表空间。 InnoDB 默认会将其所有的表数据存储在一个共享表空间中,即ibdata1。

我们可以通过设置innodb_file_per_table参数为1(1代表独占方式)开启独占表空间模式。开启之后,每个表都有自己独立的表空间物理文件,所有的数据以及索引都会存储在该文件中,这样方便备份以及恢复数据。

 

2. 段(Segment)

表空间是由各个段组成的,段一般分为数据段、索引段和回滚段等。InnoDB默认是基于B+树实现的数据存储。

这里的索引段则是指的B+树的非叶子节点,而数据段则是B+树的叶子节点。而回滚段则指的是回滚数据,事务隔离的MVCC利用了回滚段实现了多版本查询数据。

 

3. 区(Extent) / 页(Page)

区是表空间的单元结构,每个区的大小为1MB。而页是组成区的最小单元,页也是InnoDB存储引擎磁盘管理的最小单元,每个页的大小默认为16KB。为了保证页的连续性,InnoDB存储引擎每次从磁盘申请4-5个区。

 

4. 行(Row)

InnoDB存储引擎是面向列的(row-oriented),也就是说数据是按行进行存放的,每个页存放的行记录也是有硬性定义的,最多允许存放16KB/2-200行,即7992行记录。

 

InnoDB逻辑存储结构

原文:https://www.cnblogs.com/agilestyle/p/11428574.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!