Postgresql
如何操作 PostgreSQL 優化器的連接順序?
我正在研究表連接順序優化。
在查詢處理時,我想獲取優化器生成的表連接順序,並在 PostgreSQL 中使用我自己的算法對其進行更新?
如何在查詢處理時更新表連接順序?
你可以這樣做,但它需要一些技巧。
想像一下,你得到了這個:
select ... from a, b, c, d, e ...
…這種類型的查詢總是重新排序。
但如果你這樣做:
select ... from a JOIN b ... JOIN c JOIN d JOIN c ...
…那麼 PostgreSQL 只會重新排序
join_collapse_limit
表。您可以將此變數減小到一個較低的值以強制 PostgreSQL 進入您的訂單;但是,我會盡量避免這種情況。這應該只在本地使用
SET LOCAL
,您應該首先考慮為什麼要更改連接順序。