開發運維建議
更新(xin)時間 2024-10-11 21:35:59
最近(jin)更新時間: 2024-10-11 21:35:59
分(fen)享文(wen)章(zhang)
本文介紹一(yi)些(xie)關于(yu)RDS-PostgreSQL的開發運維建議。
參數部分
數據(ju)庫參數是數據(ju)庫系(xi)統運(yun)行的關鍵配置(zhi)信息,設置(zhi)不合適的參數值(zhi)可能會影(ying)響業(ye)務。
- 修改敏感參數,不當設置會導致信息泄露。例如參數 log_statement,可能會在日志輸出中帶有敏感信息,若無必要可以設置為none。
- 性能參數,不當設置會導致無意義的數據庫空轉或者阻塞,導致讀寫性能下降。例如參數autovacuum,頻率過高會導致占用時間過長,降低實例性能,而頻率過低可能會引起清理速度趕不上讀寫速度,最終導致xid回卷。
數據庫重復操作開銷
- 使用連接池。過多的數據庫連接會占用寶貴的內存資源,反復創建與銷毀連接會增大切換的開銷。因而在不影響實際應用的情況下,降低連接數量有利于系統性能優化。業務系統在不影響的情況下,應盡量使用連接池,避免反復創建過多連接,使數據庫負荷過重。
- 使用較大的事務批量處理數據。在不要求分段確認且成功率高的場景下,業務系統應將適當數量的語句放在一個事務內執行,減少反復提交事務的開銷。一般的關系型數據庫進行事務回滾會有較大時間開銷,但關系數據庫PostgreSQL版的特性即是回滾時間與事務大小無關,因而事務語句數量閾值相較于其他數據庫可以更大一些。