PostgreSQL 配置速查
postgresql.conf
连接、共享缓冲、WAL 与 autovacuum 相关配置项,及常用调优点。
# PostgreSQL 配置速查
## 核心结构
主配置文件 postgresql.conf,配合 pg_hba.conf 管认证、pg_ident.conf 管用户映射。
## 高频配置项
- listen_addresses / port:监听地址与端口
- max_connections:最大连接数,连接多时更推荐前置连接池
- shared_buffers:共享缓冲,最关键的调优点,常设为内存的四分之一左右
- effective_cache_size:优化器对可用缓存的估算,只影响计划选择
- work_mem / maintenance_work_mem:单操作排序与哈希内存、维护操作内存
- wal_level / max_wal_size / checkpoint_completion_target:WAL 级别与检查点节奏
- autovacuum:自动清理开关,默认应保持开启
- logging_collector / log_min_duration_statement:日志收集与慢语句阈值
## 连接管理
PG 是进程模型,每个连接一个后端进程。高并发短连接场景下,进程创建开销明显,应使用连接池而不是一味调大 max_connections。
## 常见坑
- 关闭 autovacuum,表膨胀与事务回卷迟早找上门
- work_mem 设太大,连接一多内存被打满
- 长事务阻碍清理,导致膨胀与索引失效
- 忽略 pg_hba.conf,把认证方式放得过宽
- 只监控连接数,没监控复制延迟与表膨胀
## 排查看什么
pg_stat_activity 看当前活动、EXPLAIN ANALYZE 看真实执行、pg_stat_user_tables 看膨胀与扫描比例。