前置知识: PostgreSQL

体系架构

2 minAdvanced2026/6/14

PostgreSQL体系架构:进程模型、共享内存、本地内存、后台进程与数据目录结构

1. 进程模型

PostgreSQL 采用多进程架构,每个客户端连接对应一个后端进程。

1.1 核心进程

进程作用
postmaster主进程,监听连接,fork后端进程
backend处理客户端查询
autovacuum launcher自动清理调度
autovacuum worker执行自动清理
WAL writer定期刷写 WAL 缓冲区
background writer定期刷写脏页到磁盘
checkpointer执行检查点
stats collector收集统计信息
logical replicator逻辑复制

1.2 连接流程

客户端 → postmaster (监听5432) → fork backend进程 → 处理查询

2. 共享内存

2.1 主要共享内存区域

区域参数默认值说明
Shared Buffersshared_buffers128MB数据页缓存
WAL Bufferwal_buffers-1(自动)WAL 缓冲区
Commit Log事务状态缓存
Lock Table锁信息
-- 设置共享缓冲区
ALTER SYSTEM SET shared_buffers = '4GB';
-- 建议设为物理内存的 25%

3. 本地内存

区域参数默认值说明
Work Memwork_mem4MB排序/哈希操作内存
Maintenance Work Memmaintenance_work_mem64MBVACUUM/CREATE INDEX
Temp Bufferstemp_buffers8MB临时表缓冲区
ALTER SYSTEM SET work_mem = '64MB';
ALTER SYSTEM SET maintenance_work_mem = '512MB';

4. 数据目录结构

$PGDATA/
├── base/           — 数据库文件
├── global/         — 共享系统表
├── pg_wal/         — WAL 日志
├── pg_xact/        — 事务提交日志
├── pg_stat/        — 统计信息
├── pg_stat_tmp/    — 临时统计
├── postgresql.conf — 配置文件
├── pg_hba.conf     — 认证配置
└── postmaster.pid  — 主进程PID