最近發現 PG 的效能好像有點問題,所以就開始努力檢視看有什麼地方可以改進的,
也問了 Garlic 有沒有什麼建議,然後 Garlic 發現我們的 SQL 在執行時,
Query Plan 有 Bitmap Heap Scan,覺的怪怪的。
所以我就去查查看為什麼會有這個啦。
網路上找到有人在討論這個
Planner selects slow "Bitmap Heap Scan" when "Index Scan" is faster
明明用 Index Scan 比較快,但還是用了比較慢的 Bitmap Heap Scan
照著裡面的說法,我去更改了 PG 的設定檔。
在 QUERY TUNING 的區塊中,將 random_page_cost 從預設值 4.0 改成 0.1
random_page_cost = <num> — random_page_cost controls the way PostgreSQL views non-sequential disk reads. A higher value makes it more likely that a sequential scan will be used over an index scan indicating that your server has very fast disks.
下面是還沒設定 random_page_cost 時的 Query Plan
設定後,Query Plan 就如下圖,變的更精簡也更快了。
而且整體的效能也都變的更好了。
太優秀了, dba
回覆刪除