原文:How a single PostgreSQL config change improved slow query performance by 50x

PostgreSQL 的 random_page_cost 預設參數值為 4,但這是相對於 HDD 硬碟下的建議值。如果是高速硬碟,如 SSD,作者表示將值改為 1 時,某個慢查詢的速度隨即提升了 50 倍。

作者進一步分析原因,發現當 random_page_cost 從預設值 4 改為 1 後,該 Query 優化器從原本使用 Hash Join 改為 Nested Loop 而獲得效能提升。

對於相應硬體建議的參數調整,在我今年「RDBMS 資料庫案例設計討論營系列活動 - 最佳化設計技巧」[*] 的分享課中有提到。除了 PostgreSQL 外,MySQL 也有針對 SSD 相應的一些設定。

資料佐證來源

[*] https://phptheday.kktix.cc/events/ant-rdbms-02