加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

超详细的PG数据存储结构:逻辑结构和物理存储总结

发布时间:2019-08-06 13:32:27 所属栏目:编程 来源:波波说运维
导读:概述 本日首要讲讲PG的数据布局,PG数据存储布局分为:逻辑布局和物理存储。 个中逻辑存储布局是内部的组织和打点数据的方法。物理存储布局是操纵体系中组织和打点数据的方法。逻辑存储布局合用于差异的操纵体系和硬件平台。 一、逻辑存储布局 逻辑布局包

IAM的布局与GAM页相同,除IAM头外,剩下空间的每一位(bit)均对应着一个与IAM相干的Extent。若某bit位为1,则表白该bit位所关联的Extent已被分派给该IAM,反之未被分派。若一个IAM页面巨细为8K,则除IAM头(64 bytes)外,一个IAM页面所能包围的文件范畴是: (81024-64)8(88K),约4GB空间。

但与GAM也差异之处在于:IAM的呈现位置不牢靠,只在在建设数据库工具的时辰才分派。

超具体的PG数据存储布局--逻辑布局和物理存储总结,值得保藏

三、逻辑与物理存储相关

1、逻辑相关存在表空间;

2、表空间存在对应的数据文件中;

新建设的数据库对应的数据文件的名称:

Catalog表空间 – databasename.dbf

System表空间 – Udatabasename.dbf

Temp表空间-- Tdatabasename.dbf

  • 前面加 “U” 前缀代表用户数据表空间,用于生涯用户表的数据。
  • 不带 U 代表 是体系表的表空间,用于生涯体系表的数据。
  • U 前缀的数据文件代表的表空间名为PG。
  • 不带U 的数据文件代表的表空间为 CATALOG。

四、数据库文件、表空间、其他文件之间的相关

1、相关图如下:

超具体的PG数据存储布局--逻辑布局和物理存储总结,值得保藏

声名:

1)每一个数据库具有一个或多个数据文件,用户存放数据库的全部数据。

2)数据库的数据文件有以下特性:

  • 一个数据库文件只能与一个数据库的一个表空间相连。
  • 一个表空间可以由多个数据文件构成。

3)数据库工具与文件相关:

  • 数据库工具放到表空间中。
  • 表空间有多个数据文件。
  • 表空间中有多个数据库工具。

4)数据库工具逻辑上是存储在表空间中,物理上是存储在与表空间相干联的数据文件中。

2、数据库包括的文件种类:

1)数据库文件:data/DB

数据库工具,如:数据库、表,索引,序列等工具。

2)节制文件:data/CTL

用来记录数据库集群的状态信息,如:版本信息、集群所打点的各类文件信息、搜查点信息、事宜状态信息等。

3)日记文件:data/REDOLOG

记录数据修改操纵的日记,用于体系产生妨碍时举办数据规复。

4)姑且文件:data/DB

存放数据库举办计较的进程中,天生的各类中间工具,如排序运算的外存合并单位。

5)参数文件:data目次下

五、Postgresql 底层存储打点方法:

Postgresql的每个数据库均存放在一个目次中,以db_oid定名,该目次中存放每个表对应的文件,文件名以该数据表对应的relfilenode_oid定名。当表中的数据量足够大,导致表文件的巨细大于1GB的时辰,postgresql会自动建设新的文件用于存放新插入的数据。新文件的名称为: relfilenode_iod.1, relfilenode_iod.2 等。行使该计策是为了防备在某些文件体系中,最大支持文件尺寸不能大于1GB的气象。

db_oid, relfilenode_oid可以从pg_class体系表中查询得出。

每个table对应的文件内部又凭证Page的方法组织。每个Page的巨细默以为8KB。以是每个数据库对应文件的Disk 漫衍由下图所示:

超具体的PG数据存储布局--逻辑布局和物理存储总结,值得保藏

每个Page中包括Page Header以及Data段,Page Header中,pg_lower指向Free Space的起始地点,pg_upper指向Free Space的竣事地点。

  • Data 段中,包括有: ItemIdData 段,Free Space段, Items段 以及Special space段。
  • ItemIdData 段: Array of (offset,length) pairs pointing to the actual items. 4 bytes per item.
  • Free Space 段:The unallocated space. New item pointers are allocated from the start of this area, new items from the end.
  • Items 段: The actual items themselves.
  • Special space 段: Index access method specific data. Different methods store different data. Empty in ordinary tables.
  • Item的存储是从pg_upper向pg_lower(相同堆)偏向增添。ItenIdData的存储是从pg_lower向pg_upper偏向增添(相同栈)。

【编辑保举】

  1. 测试数据库的不变性和机能竟云云简朴
  2. 超具体的数据库主机及数据库日记网络总结
  3. 值得保举的四款优越图形数据库
  4. 后端措施员必备:MySQL数据库相干流程图/道理图
  5. 8月数据库排行:Oracle 节节攀升,PG 和 MongoDB 分数再现下跌
【责任编辑:华轩 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读