
高级进阶 DB2(第 2 版)——内部结构、高级管理与问题诊断
图 2-1 DB2 的存储层次结构图
用户创建的表、索引等数据库对象存放在表空间中。表直接面向应用,而同时表空间
又和底层的物理存储对应,表空间可以有多个容器,而容器是在底层存储上的。所以通过
表空间数据库实现了物理存储和逻辑存储的统一。
下面我们先讲解数据库的物理存储。我们都知道操作系统的最小存储单位是块(block),
在 Linux 和 UNIX 上,最小的块是 512 字节;在 Windows 上,最小的存储单位为 1KB。而
数据库中最小的存储单位是数据页(data page),它是 DB2 读写的最小单位。DB2 数据库中
有 4KB、8KB、16KB 和 32KB 几种数据页。我们可以根据业务类型(OLAP、OLTP 等)和表
的大小来选择合适的数据页。DB2 数据库在写物理存储时,为了保证写的吞吐量,引入了
更大的单位 extent(扩展数据块),它是整数倍的 data page 的大小。我们可以通过在创建表
空间时指定 extentsize 来确定,而表空间容器又是由很多个 extent 组成的。它们之间的关系
如图 2-2 所示。
图 2-2 表空间、容器、extent 和数据页之间的关系
评论