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

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

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

概述

本日首要讲讲PG的数据布局,PG数据存储布局分为:逻辑布局和物理存储。

超具体的PG数据存储布局:逻辑布局和物理存储总结

个中逻辑存储布局是内部的组织和打点数据的方法。物理存储布局是操纵体系中组织和打点数据的方法。逻辑存储布局合用于差异的操纵体系和硬件平台。

一、逻辑存储布局

逻辑布局包罗:

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

全部数据库工具都有各自的oid(object identifiers),oid是一个无标记的四字节整数,相干工具的oid都存放在相干的system catalog表中,好比数据库的oid和表的oid别离存放在pg_database,pg_class表中。

1、数据库集群-Database cluster

2、数据库-Database

3、表空间-tablespace

数据库在逻辑上分成多个存储单位,称作表空间。表空间用作把逻辑上相干的布局放在一路。数据库逻辑上是由一个或多个表空间构成。

新建设的数据库默认建设下面的表空间:

1)Catalog表空间 存放体系表信息

2)System表空间 存放用户数据3)Temp表空间

4、模式-Schema

自动建设的体系模式如下:

1)PG_CATALOG

2)PG_LARGEOBJECT

3)PG_TOAST

4)PG_PARTITION

默认的用户模式PUBLIC。

5、段-segment

6、区-extent

7、块-block

8、数据库工具-Database object

1)模式工具表、索引、序列、大工具、视图、函数、存储进程、触发器、包 … …

2)非模式工具用户、数据库

9、数据表-Table

10、索引-Index

11、序列-Sequence

12、视图-View

二、物理存储布局

在执行initdb的时辰会初始化一个目次,凡是我们城市在体系设置相干的情形变量$PGDATA来暗示,初始化完成后,会再这个目次天生相干的子目次以及一些文件。在postgresql中,tablespace的观念并差异于其他相关型数据库,这里一个tablespace对应的都是一个目次。如下图就是PG的物理布局:

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

1、存储体系首要包罗三个部门:

内存中:buffer,MemoryContext;

数据文件,姑且文件;

日记文件,日记缓存。

2、文件和目次相干浸染描写:

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

3、数据文件布局

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

3.1、页

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

将数据文件中的空间从逻辑上分别成一个个页面(数据块)。页面是数据库I/O的根基单元,即只能整页读写数据文件, 页面的巨细默认是8K。

页面可以分成两种:

1)数据页面:数据页面是用来存储用户数据的。

2)节制页面:节制页面用来打点这些数据页面。

数据库共享缓存中的空间分别也是按页为根基单元, 一个页的巨细与数据文件中页的巨细同等, 这样便于整页读取数据文件,并放入到数据库Buffer中, 从Buffer写入数据文件也同理,担保了缓存与数据文件布局和内容上的同等性。

3.2、Block(块)

观念上根基等同于Page, 但Block更多用于声名DMS中对数据文件中Page的描写。

譬喻: 对文件的读写的操纵, 文件读写位置的定位, 数据文件空间接纳等操纵, 单元均是以块举办。

数据块的巨细在体系初始化时指定,默认是8K,可以取值4K,8K,16K,32K。

3.3、Extent(区)

把数据文件中8个持续的Page组成的空间称为一个Extent。Extent是数据库举办数据文件空间分派/开释的根基单元。每个表、索引、序列工具都是由多少个区构成。数据文件被建设后,除自动保存部门区作为节制区外,其他区所有处于未分派状态。表、索引、序列工具的全部数据都存放在Extent中,当向这些Extent中插入数据时,若该Extent的全部页面都已占满,体系就会自动在所属表空间的数据文件中探求一个尚未分派的区,并将其状态修改为数据区。

3.4、节制页面

用于空间打点的节制页面:PFS/GAM/IAM。

用于增量备份的节制页面:DCM。

判定可见性的节制页面:VM。

预留的节制页面:BCM/SGAM。

3.5、PFS

Page Free Space,简称PFS页.

用于记录本数据文件中页面的空间行使环境。对文件中的每个页面,PFS中都有一个“字节”与之对应,该字节记录了该页面的状态。

PFS页前64bytes被预留为页头, 剩下81024-64=8128一共包围81288K=64MB空间.

故PFS页每隔8128个页面呈现一次, 体系初始化把第一个PFS页放在数据文件的第二个页面位置,即:第1号数据页面, 由此可知,第N个PFS页的位置在8128*N+1.

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

3.6、GAM

Global Allocation Map,简称GAM页。

成果:记录地址数据文件的Extent的分派环境,GAM页中除GAM头外,剩下空间的每一位(bit)均对应一个Extent的分派环境。若某bit位为1,则表白该bit位所关联的Extent已被分派出去,反之未被分派。

(编辑:湖南网)

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

热点阅读