PostgreSQL 数据库优化可以从多维度进行以下是关键的参数调整方向与优化策略一、核心参数调优内存相关shared_buffers建议设为系统内存的15%-25%OLTP 场景。若内存 64GB可适当降低比例。work_mem排序/哈希操作的内存计算公式参考work_mem (总内存 - shared_buffers) / max_connections / 2。避免过大导致内存溢出。maintenance_work_memVACUUM、CREATE INDEX 等维护操作的内存可设为work_mem的 2-3 倍。effective_cache_size优化器估算的磁盘缓存大小通常设为系统内存的50%-75%。WAL 与恢复wal_buffers默认为 -1自适应通常 16-64MB 足够。高写入场景可设为 64MB。max_wal_size控制 WAL 日志最大尺寸默认 1GB建议设为shared_buffers的 1-2 倍。min_wal_size建议设为max_wal_size的 1/3。连接与并发max_connections根据实际连接数设置避免过高默认 100。每连接会占用内存可配合连接池如 PgBouncer使用。max_parallel_workers_per_gather并行查询的 worker 数通常设为 CPU 核数的 1/2 到 2/3。二、查询与索引优化启用高级特性-- 启用并行查询SETmax_parallel_workers8;SETmax_parallel_workers_per_gather4;-- 启用 JIT 编译OLAP 场景jiton统计信息与成本估算default_statistics_target列统计信息精度默认 100。复杂查询可提高到 200-500。random_page_costSSD 环境建议设为1.0-1.2默认 4.0 针对机械硬盘。三、存储与 I/O 优化表空间分离将 WAL 日志、数据、索引分配到不同物理磁盘。分区表对大表按时间/范围分区减少单表体积。调整页大小若记录较大 8KB可考虑编译时设置--with-blocksize16或 32。四、维护与监控定期维护-- 开启自动 vacuumautovacuumonautovacuum_vacuum_scale_factor0.1autovacuum_analyze_scale_factor0.05-- 定期重建索引REINDEXINDEXCONCURRENTLY idx_name;监控工具使用pg_stat_statements分析慢查询。通过EXPLAIN (ANALYZE, BUFFERS)查看执行计划。五、示例配置32GB 内存SSD 磁盘shared_buffers 8GB effective_cache_size 24GB work_mem 32MB maintenance_work_mem 1GB random_page_cost 1.1 max_connections 200 wal_buffers 16MB max_wal_size 2GB checkpoint_completion_target 0.9六、注意事项使用pg_tune工具生成基础配置。每次只调整 1-2 个参数通过pgbench或真实业务测试效果。关注pg_stat_activity与pg_stat_bgwriter视图定位瓶颈。通过综合参数调整、查询优化与存储策略可显著提升 PostgreSQL 性能。建议结合具体业务负载进行针对性调优。