Linux中优化PostgreSQL性能可从硬件、配置、索引、查询及维护等方面入手,具体如下:
硬件优化
shared_buffers(建议为物理内存25%-40%)、work_mem(按查询复杂度设置,典型值10MB-100MB)等参数。系统配置优化
vm.swappiness减少内存换页,设置noatime禁用文件访问时间戳以减少磁盘I/O。wal_buffers:设置为shared_buffers的1/32,提升WAL写入效率。effective_cache_size:设为物理内存50%-75%,帮助优化器选择索引扫描。max_parallel_workers_per_gather(根据CPU核心数调整)。索引优化
REINDEX)或使用VACUUM清理碎片。查询优化
SELECT *,只查询必要字段,减少数据传输。EXPLAIN/EXPLAIN ANALYZE分析执行计划,避免全表扫描,优化JOIN顺序(小表驱动大表)。OFFSET,如WHERE id > last_id LIMIT 10。数据库设计与维护
VACUUM和ANALYZE,更新统计信息并清理无效数据。并发与工具优化
pgBadger、pg_stat_statements分析慢查询,定位性能瓶颈。参考来源:[1,2,3,4,5,6,7,8,9,10,11]