在CentOS上进行PostgreSQL性能调优可从硬件、配置、查询、索引及维护等方面入手,具体如下:
硬件与系统优化
vm.swappiness
减少内存换页。数据库配置优化
shared_buffers
:设置为物理内存的25%-40%。work_mem
:根据查询复杂度设置(如64MB-1GB),用于排序、哈希等操作。maintenance_work_mem
:设置为较大值(如1GB),用于维护操作(VACUUM、CREATE INDEX等)。effective_cache_size
:设置为物理内存的50%-75%,优化缓存使用。wal_buffers
:设置为shared_buffers
的1/32。effective_io_concurrency
:SSD设置为200,提升并行I/O效率。max_parallel_workers_per_gather
:根据CPU核心数设置,启用并行查询。查询与索引优化
EXPLAIN
分析查询计划,避免全表扫描,优化慢查询。数据库设计与维护
VACUUM
和ANALYZE
,清理冗余数据并更新统计信息。其他优化
pgBadger
等工具分析日志。注意:调整参数前需根据实际硬件配置和业务负载测试,避免一次性大幅修改导致系统不稳定。
参考来源: