InnoDB 4 表

索引组织表:

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

在创建表时若未显式地定义主键,则InnoDB存储引擎会按照如下方式选择或创建主键。

InnoDB逻辑存储结构:

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

表空间:

InnoDB存储引擎逻辑结构的最高层,所有数据都存放在表空间中。

段:

表空间由各个段组成。常见的段有数据段、索引段、回滚段等。

区:

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

页:

也称为块,是InnoDB磁盘管理的最小单位。默认16KB,可以自行设置。

常见的页类型有:数据页、undo页、系统页、事务数据页、插入缓冲位图页、插入缓冲空闲列表页、未压缩的二进制大对象页、压缩的二进制大对象页。

行:

数据按行存放。每个页存放的记录也是硬性定义的,最多存放16KB/2-200行的记录。

Compat行记录格式:

变长字段列表 | NULL标志位 | 记录头信息 | 列1数据 | 列2数据 |。。。

Redundant行记录格式:

字段长度偏移列表 | 记录头信息 | 列1数据 | 列2数据 | 列3数据 |。。。

约束:

1. 完整性约束

数据完整性:

实体完整性保证表中只有一个主键。有以下三种形式:实体完整性保证表中有一个主键。primary key或unique key。用户还可以编写一个触发器来保证数据完整性。

域完整性宝成数据每列的值满足特定的条件。有以下几种途径:合适的数据类型、外键约束、编写触发器、还可以考虑用DEFAULT约束作为强制域完整性的一个方面。

参照完整性保证两张表之间的关系。InnoDB支持外键,因此允许用户定义外键以强制参照完整性,也可以通过编写触发器强制执行。

对于InnoDB存储引擎来说,提供以下几种约束:

primary key;  unique key;  foregin key;  default;  NOT NULL;

约束在表建立时进行约束定义或利用ALTER TABLE命令来进行创建约束。

unique key唯一索引,可以通过CREATE UNIQUE INDEX来建立。

原文地址:https://www.cnblogs.com/cjj-ggboy/p/12552589.html