postgres 数据库架构介绍--1

简介

   postgres 数据库是目前最流行的开源关系型数据库之一,其具有丰富的数据类型、多版本并发控制、同步/异步流复制、嵌套事务和预写式日志等功能,广泛地应用于金融、物流、制造/电信等领域

基本概念

1 数据库cluster[逻辑]
database cluster:包含各种数据库对象,如表,索引,视图,索引,函数和序列等
在这里插入图片描述
2 数据库cluster [物理]
在这里插入图片描述

filesdescription
PG_VERSION包含postgres的版本号信息
pg_hba.conf客户端认正配置文件
pg_ident.confpostgres 用户名映射文件
postgresql.confpostgres 配置文件,包含各种参数设置:共享内存大小,最大连接数等
postgresql.auto.conf更改系统时存放各种配置参数信息
subdirectoriesdescription
base创建数据库所在目录
global全局系统表,pg_class和pg_control等
pg_xact事务提交状态日志
pg_dynshmem记录动态共享内存信息
pg_logical存放逻辑解析过程中生成的数据
pg_wal存放预写式日志
pg_stat统计信息的持久性文件
pg_subtrans存放子事务状态日志
pg_twophase存放两阶段提交事务状态信息
架构介绍

1 进程架构
  postgres数据库是一个多进程架构,采用典型服务端–客户端结构,进程间通过共享内存进行通信。其中最重要的两个进程server process (postmaster)和backend process. postmaster 负责整个系统的启动与关闭,管理整个数据库集群,同时接收来自客户端的连接请求,后fork出一个服务进程backend process. postmaster 为客户端提供服务,执行客户端的各种命令。
  此外postmaster进程还启动一些辅助进程共同实现数据库的各种功能。

  1. background writer:后台写进程,负责将缓冲池的脏页数据写回磁盘,
  2. checkpointer:检查点,每隔一定周期将脏页刷盘,包括共享缓冲池和SLRU脏数据
  3. autovacuum:自动清理进程,用于回收被删除元组空间,避免数据文件无限膨胀
  4. WAL writer: WAL写进程,负责将wal buffer 刷写至磁盘,缓解业务高峰时日志的并发写入,对数据库性能造成影响
  5. statistics collector:信息收集进程,负责收集数据库系统运行的统计信息,主要用于查询优化时的代价估算
  6. pgArch:日志归档进程,负责将WAL日志进行归档备份,加强数据库的高可靠性和高可用性,防止数据意外丢失。

在这里插入图片描述
如果许多客户端(如WEB应用程序)频繁地重复与PostgreSQL服务器的建立连接与断开,就会增加建立连接和创建后端进程的成本,因为PostgreSQL没有实现本地连接池特性。这种情况会对数据库服务器的性能产生负面影响。要处理这种情况,通常使用池中间件(pgbouncer或pgpool-II)。

2 共享内存架构
  在postgres数据库中,内存分为共享内存和私有内存[backend process]。
私有内存主要由temp_buffers、work_mem和maintenance_work_mem组成

typedescription
temp_buffers存放执行过程中的临时数据或者临时表
work_mem此区域用于ORDER by和DISTINCT操作,以及各种joins操作
maintenance_work_mem此区域用于执行各种维护性操作如 VACUUM、REINDEX操作

共享内存包括共享缓冲池、WAL buffer、SLRU<clog和subtrans日志>

typedescription
shared buffer pool存放table和index数据页
WAL buffer用于存放WAL日志,加载或者持久化
SLRU(子)事务状态日志缓冲区,包括CLOG和SUBSTRANS

在这里插入图片描述

参考:https://www.interdb.jp/pg/pgsql01.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值