数据库记录是按照行来存储的,但是数据库的读取并不以行为单位,在数据库中,不论读一行,还是读多行,都是将这些行所在的页进行加载。也就是说,数据库管理存储空间的基本单位是页(Page)。一个页中可以存储多个行记录(Row),同时在数据库中,还存在着区(Extent)、段(Segment)和表空间(Tablespace)。行、页、区、段、表空间的关系如下图所示:
    image.png
    页(Page):用来存储数据表达形式行的空间,一页可以存在多个行,每一种数据库或数据引擎对于页的大小定义是不一样的,Sql Server的页大小为8K,、Oralce 支持的块大小为 2KB,4KB,8KB,16KB,32KB 和 64KB、InnoDB为16K。区(Extent):是比页大一级的我存储结构,在InnoDB引擎中,一个区会分配64个连续的页,不同的引擎上的页默认大小不一致,在InnoDB默认大小为16KB,一个区的大小也就是1M
    段(Segment):是由一个区或多个区组成,段并不需要区是连续的,段是数据库的分配单位,创建表的时候会创建一个表段,创建一个索引的时候会创建一个索引段。
    表空间(Tablespace):是一个逻辑容器,表空间是由段或多个段组成,对应的关系是一对多的关系,数据库是由一个表空间或多个表空间组成,从管理上可以划分为系统表空间、用户表空间、临时表空间等。