一次完整的IO操作时间=磁盘轴旋转的时间(旋转延迟)+磁盘臂移动时间(寻到时间)+数据传输时间。一次完整的IO时间的经验值是1/80秒,所以对于大型的数据库而言,频繁的IO操作会将微不足道的时间积累的非常可观。
db2 实际数据库包含许多逻辑对象和物理对象。
- 表,视图,索引,模式,触发器,存储过程,程序包等数据库对象。
- 缓冲池、日志文件、表空间
- 物理存储、表空间容器、目录、文件系统或裸设备。
这些对象一部分(比如表或视图)帮助决定如何对数据进行组织,其他对象(比如表空间)涉及数据库的物理实现;最后(比如缓冲池和其他内存对象)处理如何管理数据库性能。另外一些对象(比如日志文件)处理数据库的可恢复性。
表空间可以跨许多容器,这就意味着可以突破操作系统对于一个容器可以包含的数据量的限制。
操作系统的最小存储单位是块,在Linux中最小的块是512字节,在windows中,最小的存储单位是1kb,
而数据库中最小的事数据页。DB2中有4,8,16,32kb几种数据页。db2 在写物理存储时,为了保证写的吞吐量,引入了更大的单位extent,它是整数倍的datapage的大小。而表空间容器又是由很多extent组成,同时表空间又由很多容器组成。所以一般可以理解为多个extent组成一个container,多个container组成
表空间。
DB2中有三种管理类型的表空间
- 系统管理表空间(SMS)
有操作系统的文件系统管理器分配和管理空间,一般不需要怎么维护
- 数据库管理的空间
由DB2数据库管理器管理程序控制存储空间表空间容器可以使用文件系统或者裸设备。
- DMS的自动存储
SMS表空间可以简化管理,不能使用裸设备,DMS表空间可以提高性能,可以使用裸设备。
在使用SMS表空间时,DBA最多只能在表空间中存放64GB数据(4kb页大小)DMS可以到达8TB
DMS自动存储允许DBA为数据库设置在创建所有表空间时可以使用的存储路径
db2存储模型总结
- 数据库是对象的集合,包括表、索引、视图、容器、大对象、触发器。
- 这些对象存储在表空间中,表空间由表空间容器组成
- 表空间可以由操作系统管理,也可以由DB2管理
- 表空间容器可以选择底层存储-文件系统、裸设备或操作系统目录
- 表空间由很多扩展数据库(extent)组成,而extent又由extentsize(可自己定义)个数据页组成,数据页是最小的存储单位。
- 应该主要根据性能和维护因素决定要使用的表空间类型,扩展数据块的大小,数据页的大小和容器的类型。
db2 create database mydb 数据库创建了什么
- db2会创建许多文件,这些文件包括日志文件、配置信息、历史文件、和三个默认表空间。这些表空间分别是:
- syscatspace:这是保存db2系统编目的地方,系统编目跟踪与db2对象相关联的所有元数据,即通常所说的数据字典。
- Tempspace1:db2用来放置分组、排序、连接和重组中间结果的临时工作区域。
- userspace1:默认情况下存放所有用户对象(表、索引)的地方。
数据库的逻辑结构:
DB2数据库的存储模型为:
数据库中的数据实际都是存放在表空间中的,表空间即使管理将逻辑数据库设计映射到操作系统物理存储中的一个数据库对象,用于指明数据的物理位置。
db2 中存储结构为表空间->容器->扩展数据块->数据页
来源:https://www.cnblogs.com/LLeiFeng/p/4347530.html