首页 > 其他分享 >PG数据存储结构:逻辑结构和物理存储结构

PG数据存储结构:逻辑结构和物理存储结构

时间:2023-06-24 20:45:49浏览次数:59  
标签:存储 database 数据库 逻辑 pg 结构 PG

PG数据存储结构分为:逻辑结构和物理存储。
其中逻辑存储结构是内部的组织和管理数据的方式。物理存储结构是操作系统中组织和管理数据的方式。逻辑存储结构适用于不同的操作系统和硬件平台。

逻辑结构

在逻辑存储结构中首先介绍几个术语:

Database cluster(Database Cluster,SQL 标准术语 Catalog Cluster)
数据库聚集:它是指有单个PostgreSQL服务器实例管理的数据库集合,一个数据库聚集是一组被Postgresql服务器管理的database。database cluster这个术语在Postgresql中不是表示一组database服务器。一个Postgresql服务器运行在一个主机(host)上并且管理着一个database cluster。一个DataBase Cluster可以包括:多个Database、多个User、以及Database中的所有对象。如上图所示。比如pg安装完成后,在可以做任何事情之前,我们必须在磁盘中初始化一个数据目录。 这个目录中的数据我们称之为数据库聚集。组成数据库聚集的这些数据库使用相同的全局配置文件和监听端口、共用进程和内存结构。数据库聚集是由正在运行的服务器中的一个执行实例(pg的进程)管理的database集合。初始化后,数据库聚集将包含一个名为 postgres 的database,这是供用户和第三方应用所预设的dababase。 实例本身不需要 postgres 数据库存在,但許多外部工具会假设它存在。 初始化期间在数据库聚集中所创建的另一个database称为 template1。 这将作为后续创建database使用的模板; 它不应该用于实际使用。

database cluster > database > database object 包含与被包含的关系。

database object——数据库对象,是一种数据结构,用于存储查询数据。在PostgreSQL中的所有数据库对象都由各自的对象标识符(OID)进行内部的管理。OIDs存储在system catalog。不同对象类型的OID存储在不同的catalog中。database的OID存储在pg_database中;table的OID存储在pg_class中

database——数据库
在PostgreSQL中,数据库本身也是数据库对象,并且在逻辑上彼此分离,除数据库之外的其他数据库对象(例如:表、索引等等)都属于他们各自的数据库。\l+ :查询数据库列表(pg_database)。

tablespace——表空间
数据库在逻辑上分成多个存储单元,称作表空间。表空间用作把逻辑上相关的结构放在一起。数据库逻辑上是由一个或多个表空间组成。初始化的时候,会自动创建pg_default和pg_global两个表空间。 \db+ :查询表空间列表(pg_tablespace)。

Schema——模式
当创建一个数据库时,会为其创建一个名为public的默认Schema。Schema是数据库中的命名空间,在数据库中创建的所有对象都是在Schema中创建,一个用户可以从同一个客户端连接中访问不同的Schema。而不同的Schema中可以有多个同名的Table、Index、View、Sequence、Function等等数据库对象。\dnS+ :查询模式列表(pg_namespace)

物理结构

一个database cluster基本上就是作为基础目录(base directory)的一个目录。它包含了许多子目录和文件。如果你执行initdb初始化一个新的database cluster,在指定的目录下一个基础目录就会被创建。

下图显示了pg中一个database cluster的例子。一个database是base子目录下的一个子目录。每一个表和索引在database子目录中保存在(至少)一个文件(索引和数据可以保存在一个物理文件中)。另外,也有其他子目录保存一些特别的数据和配置文件。由于pg支持tablespace,这表面tablespace这一术语与其他数据库的意思是不一样的。一个tablespace在pg中实际是一个不在base子目录中的目录

数据文件内部结构
page--数据库中最小的存储单元。在数据文件(堆表、索引、free space map and visibility map)内部,空间被分配成固定长度的pages使用,默认大小8192 byte (8 KB)
block numbers--每个page都是从0开始按顺序编号使用(编号叫block numbers),如果page已被填满,PostgreSQL会在文件末尾添加一个新的空页,以增加文件大小。

超详细的PG数据存储结构:逻辑结构和物理存储总结-51CTO.COM
PG INTERNAL-Database Cluster, Databases, and Tables_/pg internal_ivy&feeling的博客-CSDN博客
PostgreSQL物理存储结构 - 掘金
Postgresql数据库体系结构-存储结构 - 墨天轮
PostgreSQL之base和global目录完全解析_pg base目录_oldba.cn的博客-CSDN博客
The Internals of PostgreSQL : Chapter 1 Database Cluster, Databases, and Tables

标签:存储,database,数据库,逻辑,pg,结构,PG
From: https://www.cnblogs.com/sanguoasd/p/17501338.html

相关文章

  • python入门(六):数据结构和容器
    Python数据结构和容器指南原文|大纲|首页在Python中,数据结构和容器用于存储和组织数据。它们提供了不同的方式来操作和访问数据,以满足不同的需求。了解Python的数据结构和容器对于编写高效和灵活的代码至关重要。列表(List)列表是Python中最常用的数据结构之一。它是一个......
  • 数据结构课设打飞机————SFML如何配置到VS上
    解决这个问题真的是花费了我好长好长好长时间首先是SFML的版本安装,我用的编译器是VisualStudio2022,下载最新版本的SFML也没什么问题,但关键是这个(下图) 这两个版本的区别是一个32位一个64位我也是无语的今天才知道电脑如果是64位就下64位版本的,我一开始下载的是32位版本的所......
  • Google Cloud 的存储
    为啥选择使用Durable耐用性availablescalable-distributedstorage可拓展性inexpensive为什么不把音视频直接放进DB中----可以用GCS放DB比放入filesystem的速度慢太大了无法做数据库优化操作,比如说添加index GCSBucketBucketsarethebasiccontainers......
  • 数据库内核:PostgreSQL 存储
    存储管理数据库管理系统的存储管理分级在数据库管理系统中存储管理的目的是:提供页或者元组集合的数据视图将数据库对象(例如表)映射到磁盘文件上管理数据与磁盘存储之间的传输使用缓冲区来减少磁盘/内存之间传输次数将加载的数据还原成为元组是使用访问方法......
  • 数据结构与算法
    目录时间复杂度递归的时间复杂度计算时间复杂度递归的时间复杂度计算T(n)=aT(n/b)+f(n)......
  • 04-结构体
    目录一.结构体的定义声明和初始化1.1结构体定义1.2结构体的声明方式1.3结构体的初始化和成员访问二.结构体自引用与typedef连用2.1结构体自引用2.2结构体与typedef连用三.结构体内存对齐3.1为什么需要内存对齐3.2内存对齐规则3.3拓展知识3.3分析案例四.结构体传参和......
  • pg基本基本概念——模式、表、空间、用户间的关系
    表空间用于定义数据库对象在物理存储设备上的位置,不特定于某个单独的数据库。数据库是数据库对象的物理集合,而schema则是数据库内部用于组织管理数据库对象的逻辑集合,schema名字空间之下则是各种应用程序会接触到的对象,比如表、索引、数据类型、函数、操作符等。角色(用户)则是......
  • HTML------常见的几种图片格式(GIF、PNG、JPG)讲解
    (1)GIF格式GIF格式最突出的特点是支持动画同时GIF是一种无损的图像格式,即修改图片之后,图片质量没有损失。GIF支持透明效果但只能处理256中颜色。因此在网页制作中,GIF格式常用于Logo、小图标和其他色彩相对单一的图像。(2)PNG格式 PNG包括PNG-8和真色彩(PNG-24和PNG-32)。相......
  • 添加 拼音分词器 与 IK分词器 后的 映射结构与实体类(hotel)【ElasticSearch】
    1、索引库//酒店数据索引库PUT/hotel{"settings":{"analysis":{"analyzer":{"text_anlyzer":{"tokenizer":"ik_max_word","filter":"py"......
  • 数据结构第二阶段个人选题
    排课系统:  现在问题就是在安排教师信息时会出现一些冲突,然后就奔溃了,现在还需要进行适当改进。......