在Ubuntu上优化PostgreSQL性能可从以下方面入手:
调整配置参数
postgresql.conf
文件,关键参数包括:
shared_buffers
:设为系统内存的25%-50%。work_mem
:根据查询复杂度调整(如排序、哈希操作),默认1MB可适当增大。effective_cache_size
:设为系统可用内存大小,帮助优化器利用缓存。max_connections
:根据并发需求调整(默认100,建议不超过500),过大需配合连接池。sudo systemctl restart postgresql
。索引优化
CREATE INDEX idx_column ON table(column)
)。CREATE INDEX idx_multi ON table(col1, col2)
)。REINDEX TABLE table_name
或VACUUM ANALYZE
。查询优化
EXPLAIN/EXPLAIN ANALYZE
分析执行计划,避免全表扫描,优先使用索引。SELECT *
,用JOIN
替代子查询,合理使用WHERE
过滤。硬件与存储优化
连接池与维护
VACUUM
清理死元组,ANALYZE
更新统计信息。监控与调优工具
pg_stat_statements
监控慢查询,定位性能瓶颈。pg_stat_activity
查看活跃连接,优化连接数配置。注意:修改配置前需备份数据,生产环境建议先在测试环境验证。
参考来源: