一、数据库体系结构
数据库和实例
数据库一般指的是 磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及 临时数据文件等;实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。
DM逻辑存储结构
达梦数据库存储结构和MySQL类似,除列数据外,表空间(Tablespace)都使用段、簇、和页分层的逻辑存储结构进行管理,这样作最大的好处就是高效地控制磁盘空间的利用率。表空间由一个或多个数据文件组成,创建表空间时制定或者后续添加。
以下是这些数据结构的图解。可以看出,在 DM8 中存储的层次结构如下:
- 数据库由一个或多个表空间组成;
- 每个表空间由一个或多个数据文件组成;
- 每个数据文件由一个或多个簇组成;
- 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
- 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
- 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。
段(seg)
段是簇的上级逻辑单元。特性就是一个段只能属于一个表空间,但是可以跨多个数据文件。
数据段:可以被定义成特定对象的数据结构,如表数据段、索引数据段、LOB数据段等。表中的数据以表数据段结构存储,索引中的数据以索引数据段结构存储。
回滚段:保存了对象在事务中操作的信息,所有对象的回滚段都在回滚表空间中。用于回滚还原数据以及保证多事务并发时的读一致性。
临时段:在 DM 数据库中,所有的临时段都创建在临时表空间中,这样可以分流磁盘设备的 I/O, 也可以减少由于在 SYSTEM 或其他表空间内频繁创建临时数据段而造成的碎片。
簇(extent)
簇由磁盘上的连续页组成,一个簇只能在一个数据文件中
簇可以由同一个数据文件中的16、32、64个连续数据页组成,默认为16,。
页(page)