美文网首页Java笔试面试
InnoDB存储引擎的表的逻辑存储结构

InnoDB存储引擎的表的逻辑存储结构

作者: 小北觅 | 来源:发表于2018-10-25 10:49 被阅读1次

本文是《Mysql技术内幕--InnoDB存储引擎》的学习笔记。

本文主要内容是:介绍InnoDB的表的逻辑存储结构。

一、索引组织表

在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table)。索引组织表其实就是存储在一个索引结构中的表。

InnoDB对主键建立聚簇索引。如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替。如果不存在这样的索引,InnoDB会自动创建一个6字节大小的指针作为主键,然后对其建立聚簇索引。

注:如果表中存在多个非空唯一索引时,InnoDB存储引擎将选择建表时第一个定义的非空唯一索引为主键。

二、InnoDB逻辑存储结构

逻辑存储结构如下图:

从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称为表空间。表空间又由段(segment)、区(extent)、页(page)组成。页在一些文档中有时也称为块(block)。

2.1 表空间

表空间可以看做时InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。默认情况下InnoDB只有一个共享表空间ibdata1,即所有的数据都存放在这个表空间中。如果用户启用了innodb_file_per_table,则每张表内的数据可以单独放到一个表空间内。

需要注意的是,启用了innodb_file_per_table参数,每张表的表空间内存放的只是数据、索引和插入缓冲Bitmap页,其他类的数据,如回滚信息,插入缓冲索引页、系统事务信息,二次写缓冲等还是存放在原来的共享表空间内。

2.2段

表空间是由各个段组成的,常见的段有数据段、索引段、回滚段等。因为InnoDB引擎表是索引组织的,因此数据即索引,索引即数据。那么数据段即为B+树的叶子结点,索引段即为B+树的非叶子结点。

2.3区

区是由连续页组成的空间,在任何情况下每个区的大小都为1MB。为了保证区中页的连续性,InnoDB一次从磁盘申请4-5个区。在默认情况下,InnoDB存储引擎页的大小为16KB,即一个区中一共有64个连续的页。

2.4页

页是InnoDB磁盘管理的最小单位,在InnoDB存储引擎中,默认每个页的大小为16KB。
在InnoDB存储引擎中,常见的页类型有:

数据页
undo页
系统页
事务数据页
插入缓冲位图页
插入缓冲空闲列表页
未压缩的二进制大对象页
压缩的二进制大对象页

2.5行

nnoDB数据是按照行进行存放的。每个页存放的行记录也是有硬性定义的,最多允许存放16KB/ 2 - 200行的记录,即7992行记录。

行又分为Compact和Redundant两种格式。

相关文章

  • Mysql之InnoDB存储结构

    InnoDB存储结构 Innodb逻辑存储单元为为表空间,段,区,页 InnoDB表空间 InnoDB存储引擎表中...

  • InnoDB 逻辑存储结构

    InnoDB的数据大部分都是保存在表空间中,包括索引,数据和插入缓存 逻辑结构 InnoDB存储引擎的逻辑存储结构...

  • MySQL-存储引擎

    零、本文纲要 一、MySQL存储引擎 二、InnoDB存储引擎1、InnoDB逻辑存储结构2、InnoDB架构3、...

  • MySQL InnoDB 存储结构

    持续更新 逻辑存储结构 InnoDB存储引擎的逻辑存储结构和Oracle几乎一样,从大到小分别为:表空间、段、区、...

  • 存储引擎

    存储引擎 1.查询支持的存储引擎 例如 innodb myisam 区别 2.物理存储结构 共享表空间 独立表空间...

  • innodb存储引擎的物理存储结构

    innodb存储引擎的物理存储结构 innodb存储引擎的物理存储结构相当于/data/mysql/data下的文...

  • InnoDB存储引擎的表的逻辑存储结构

    本文是《Mysql技术内幕--InnoDB存储引擎》的学习笔记。 本文主要内容是:介绍InnoDB的表的逻辑存储结...

  • SQL 规范

    基础规范 表存储引擎必须使用InnoDB MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)...

  • 彻底搞懂MySQL分区

    一.InnoDB逻辑存储结构 首先要先介绍一下InnoDB逻辑存储结构和区的概念,它的所有数据都被逻辑地存放在表空...

  • InnoDB引擎逻辑存储结构

    (本片博文是《MySQL技术内幕 InnoDB存储引擎第二版》的读书笔记) 索引组织表 InnoDB存储引擎中,表...

网友评论

    本文标题:InnoDB存储引擎的表的逻辑存储结构

    本文链接:https://www.haomeiwen.com/subject/disttqtx.html