Linux下優化PostgreSQL性能可從硬件、系統配置、數據庫參數、查詢優化及維護等方面入手,具體如下:
硬件優化
系統配置優化
vm.swappiness
減少內存換頁,增加文件描述符上限。atime
更新,選擇高效IO調度器(如Deadline)。數據庫參數調優
shared_buffers
:設置為物理內存的25%-40%,緩存數據頁。work_mem
:根據查詢復雜度設置(如32MB-100MB),提升排序/哈希性能。maintenance_work_mem
:增大至1GB以上,加速索引創建和VACUUM。max_connections
:通過連接池(如PgBouncer)控制,避免過多連接。effective_cache_size
:設置為物理內存的50%-75%,輔助查詢規劃器。checkpoint_completion_target
接近1,平滑寫入壓力。索引優化
REINDEX
重建碎片化索引,通過pg_stat_user_indexes
清理無用索引。查詢優化
EXPLAIN/ANALYZE
分析執行計劃。SELECT *
,用JOIN替代子查詢,避免IN
嵌套。維護與監控
VACUUM
和ANALYZE
,清理死元組并更新統計信息。pg_stat_statements
、Prometheus+Grafana跟蹤慢查詢和性能指標。其他策略
max_parallel_workers_per_gather
,利用多核加速大表操作。huge_pages
提升內存分配效率。注意:優化前需在測試環境驗證,根據實際負載調整參數,避免過度優化[1,2,3,4,5,6,7,8,9,10,11]。