Mysql Innodb的存储结构

资料

Mysql官方文档-Innodb在磁盘中的结构

20190213083326-image.png

表空间(tablespace)

Innodb的所有数据都存放于表空间中,一个表空间对应一个ibd文件,其中的基本元素为段(segment),这个文件会存储所有表的数据以及保证回滚的回滚段。

默认的系统表空间为ibdata1,通过参数innodb_file_per_table配置是否开启独立表空间,若开启则每个表建立后都将新增一个ibd文件(该参数Mysql 5.6.6后默认开启)。

段(segment)

段是表空间的基本元素,为管理物理文件的逻辑结构,其空间是无限的可以有无限个区,其主要有索引段、数据段、回滚段等,其内部由区(extent)构成。

Mysql Innodb在新建一个索引时会建立两个段叶子节点(数据)段及非叶子(索引)节点段,在无索引的Innodb则存在聚集索引的叶子节点段、非叶子节点段。

区/簇(extent)

段的基本组成单位,由64个连续的页组成,每个页16k,一个区则1MB,是物理连续的。

当一个区内的数据空间不足时,将在新的区中进行存放。

页(page)

一个页默认大小16k,是Innodb磁盘管理的最小单位,在逻辑及物理上都连续。

常见的页

  • 数据页(B-tree Node)。
  • Undo页(Undo Log Page)。
  • 系统页(System Page)。
  • 事务数据页(Transaction system Page)。
  • 插入缓冲位图页(Insert Buffer Bitmap)。
  • 插入缓冲空闲列表页(Insert Buffer Free List)。
  • 未压缩的二进制大对象页(Uncompressed BLOB Page)。
  • 压缩的二进制大对象页(Compressed BLOB Page)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值