博客
关于我
PostgreSQL学习总结(10)—— PostgreSQL 数据库体系架构
阅读量:795 次
发布时间:2023-03-03

本文共 1443 字,大约阅读时间需要 4 分钟。

PostgreSQL 架构图和进程说明

PostgreSQL 是一种强大的开源关系型数据库管理系统(RDBMS),其架构设计简单但功能强大。以下将详细介绍 PostgreSQL 的架构图及其关键进程。


PostgreSQL 进程说明

PostgreSQL 由多个后台进程协同工作,确保数据库的高效运行。这些进程包括:

1. Postmaster 进程(主进程)

  • PostgreSQL 启动时第一个启动的进程。
  • 负责数据库的启动和关闭。
  • 接收客户端连接并派生后台进程处理请求。

2. Background Process(后台进程)

  • 由 Postmaster 进程派生而来,负责执行后台任务。
  • 包括:
    • BgWriter 进程:将数据页写入磁盘,提升插入、更新和删除性能。
    • WalWriter 进程:负责预写式日志(WAL)的写入,确保数据持久化。
    • CheckPoint 进程:定期检查点,确保WAL日志内容刷到磁盘。
    • AutoVacuum 进程:自动清理旧数据,维护数据库健康。
    • PgArch 进程:负责WAL日志归档,支持点进时恢复(PITR)。
    • PgStat 进程:收集统计数据,用于查询优化。
    • Syslogger 进程:记录数据库错误日志,需在 postgres.conf 中启用。

3. Client Process(客户端进程)

  • 由Postmaster进程派生后台进程处理客户端连接。
  • 负责接收用户请求并返回结果,通常通过TCP/IP协议传输。

PostgreSQL 的物理架构

PostgreSQL 由共享内存、后台进程和数据文件组成。其核心组件包括:

1. 共享内存

  • Shared Buffer:用于缓存数据页,减少磁盘IO。
  • WAL Buffer:缓冲预写式日志,提升备份和恢复效率。

2. 后台进程

  • 由多个后台进程共同负责数据持久化、事务管理和性能优化。

PostgreSQL 的数据库结构

PostgreSQL 的数据库结构包括:

1. 数据库组件

  • 数据库群集:一套PostgreSQL程序。
  • 模板数据库template0template1用于创建用户数据库。
  • 用户数据库:通过克隆模板数据库创建。

2. 表空间

  • PostgreSQL 默认创建 pg_defaultpg_global表空间。
  • 表默认存储于 pg_defaultpg_global存储系统表。
  • 用户可以创建自定义表空间,提升灵活性。

3. 表结构

  • 每个表由三个数据文件组成:
    • oid:存储表数据。
    • oid_fsm:管理空闲空间。
    • oid_vm:管理可见性。
  • 索引文件仅包含 oidoid_fsm

PostgreSQL 的性能优化

1. 内存管理

  • work_mem:默认4MB,用于排序和哈希操作。
  • maintenance_work_mem:默认64MB,用于清理和索引创建。
  • temp_buffers:默认8MB,用于临时表。

2. 连接管理

  • 最大后台链接数由 max_connections 参数设定,默认为100。
  • 后端进程处理用户请求,依赖本地内存(local memory)。

PostgreSQL 的优点

  • 高性能:支持高并发访问,适合OLTP场景。
  • 高可用性:支持主从复制、故障转移。
  • 强大恢复能力:支持点进时恢复(PITR)和全量备份。
  • 开源:灵活扩展,社区支持活跃。

通过以上内容,可以清晰地了解 PostgreSQL 的架构和进程,帮助开发人员更好地进行数据库管理和优化。

转载地址:http://isxfk.baihongyu.com/

你可能感兴趣的文章
postfix在邮件服务器中的使用
查看>>
PostGIS 3.1.2软件安装详细教程(地图工具篇.8)
查看>>
PostGIS中获取所有EPSG的编码以及对应Proj4字符串
查看>>
SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)
查看>>
PostGIS在Windows上的下载与安装
查看>>
Qt开发——网络编程之UDP客户端
查看>>
postgis数据库优化_postgresql 性能优化
查看>>
postgis求面积、交集等相关函数
查看>>
postgis相关函数
查看>>
Postgres Docker版本安装mysql_fdw 插件
查看>>
Postgres invalid command \N数据恢复处理
查看>>
Postgres like 模糊查询匹配集合
查看>>
Postgres 自定义函数内实现 in 操作符的递归查询
查看>>
Postgres 返回当前时间前后指定天数的集合
查看>>
postgres--vacuum
查看>>
postgres--wal
查看>>
postgres--流复制
查看>>
postgres10配置huge_pages
查看>>
PostgreSQL 10.0 preview sharding增强 - pushdown 增强
查看>>
PostgreSQL 10.0 preview 变化 - pg_xlog,pg_clog,pg_log目录更名为pg_wal,pg_xact,log
查看>>