作者:mobiledu2502861197 | 来源:互联网 | 2023-07-21 21:12
数据文件
数据文件以 dbf为扩展名,它是数据库中最重要的文件类型,一个 DM数据文件对应磁
盘上的一个物理文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的
数据文件。在实际应用中,通常有多个数据文件。
当 DM的数据文件空间用完时,它可以自动扩展。可以在创建数据文件时通过 MAXSIZE
参数限制其扩展量,当然,也可以不限制。但是,数据文件的大小最终会受物理磁盘大小的
限制。在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的
数据文件是更好的选择。
数据文件在物理上按照页、簇和段的方式进行管理。
数据文件按数据组织形式,可以分为如下几种:
1. B 树数据
行存储数据,也是应用最广泛的存储形式,其数据是按 B树索引组织的。普通表、分区
表、B树索引的物理存储格式都是 B树。
一个 B树包含两个段,一个内节点段,存放内节点数据;一个叶子段,存放叶子节点数
据。其 B树的逻辑关系由段内页面上的记录,通过文件指针来完成。
当表上没有指定聚簇索引时,系统会自动产生一个唯一标识 rowid 作为 B 树的 key 来
唯一标识一行。
2. 堆表 堆表 数据
堆表的数据是以挂链形式存储的,一般情况下,支持最多 128个链表,一个链表在物理
上就是一个段,堆表采用的是物理 rowid,在插入过程中,rowid 在事先已确定,并保证
其唯一性,所以可以并发插入,插入效率很高,且由于 rowid 是即时生成,无需保存在物
理磁盘上,也节省了空间。
3. 列存储数据
数据按列方式组织存储,每个列包含 2个段,一个段存放列数据,一个段存放列的控制
信息,读取列数据时,只需要顺序扫描这两个段。在某些特殊应用场景下,其效率要远远高
于行存储。
4. 位图索引
位图索引与 B树索引不同,每个索引条目不是指向一行数据,而是指向多行数据。每个
索引项保存的是一定范围内所有行与当前索引键值映射关系的位图。
数据文件中还有两类特殊的数据文件:ROLL和 TEMP文件。
1). ROLL 文件
ROLL 表空间的 dbf 文件,称为 ROLL 文件。ROLL 文件用于保存系统的回滚记录,提
供事务回滚时的信息。回滚文件整个是一个段。每个事务的回滚页在回滚段中各自挂链,页
内则顺序存放回滚记录。
2). TEMP 文件
TEMP.DBF 临时数据文件,临时文件可以在 dm.ini中通过 TEMP_SIZE配置大小。
当数据库查询的临时结果集过大,缓存已经不够用时,临时结果集就可以保存在
TEMP.DBF文件中,供后续运算使用。系统中用户创建的临时表也存储在临时文件中。
总结
上面即为达梦中数据库数据文件概念知识。浅见认知,如有错误,请不吝指正。谢谢!