PostgreSQL学习笔记(一)

本文介绍了PostgreSQL中的关键概念,包括数据库集簇的管理、数据库与数据表的逻辑结构、对象标识符的作用,以及表与索引的存储方式。还详细讲解了服务器进程、后端进程和后台进程的角色,以及内存架构的划分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PostgreSQL学习笔记

数据库集簇、数据库和数据表

数据库集簇(database cluster)

是一组数据库(database)的集合,由一个PostgreSQL服务器管理。
一个PostgreSQL服务器只会在单机上运行并管理单个数据库集簇。组成数据库集群的这些数据库使用相同的全局配置文件和监听端口、共用进程和内存结构。
一个DataBase Cluster可以包括:多个DataBase、多个User、以及Database中的所有对象。

数据库(database)

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

数据表 (tablespace)

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

对象标识符 (oid)

在PostgreSQL中,对象标识符OID用来在整个数据库集簇中唯一的标识一个数据库中的对象,这个对象可以是数据库、表、索引、视图、元组、类型等。 它本身是一个无符号整数。

表与索引布局

PostgreSQL中的每个表(TABLE)都将由一个或多个堆文件表示。
默认情况下,表的每个1GB块(Block)存储在一个单独的(堆)文件中。
当该表文件已经达到1GB之后,用户再次插入数据时,postgres会重新创建一个新的堆文件,新文件名格式是:表oid +“.” + 序号id(序号id从1开始一次递增)。

进程和内存架构

服务器进程

postgres 服务器进程是 PostgreSQL 服务器中所有进程的父进程。
一个postgres服务器进程监听一个网络端口,默认端口是5432。
通过pg_ctl start,postgres 服务器进程将启动。
它在内存中分配一个共享内存区域,启动各种后台进程,必要时启动复制关联进程和后台工作进程,
并等待来自客户端的连接请求。每当收到来自客户端的连接请求时,它就会启动一个后端进程。

后端进程

后端进程,也称为postgres,由 postgres 服务器进程启动并处理由一个连接的客户端发出的所有语句。它通过单个 TCP 连接与客户端通信,并在客户端断开连接时终止。

后台进程

后台进程是PostgreSQL用于监视系统状态的进程,它可以自动化地监控系统状态,如记录日志、发送警报通知、监控资源使用情况等。

PostgreSQL 中的内存架构

本地内存区域—由每个后端进程分配供自己使用。
共享内存区域—由 PostgreSQL 服务器的所有进程使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值