Postgresql

如何操作 PostgreSQL 優化器的連接順序?

  • March 10, 2018

我正在研究表連接順序優化。

在查詢處理時,我想獲取優化器生成的表連接順序,並在 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,您應該首先考慮為什麼要更改連接順序。

相關:由於行估計非常不准確而導致全文搜尋緩慢

引用自:https://dba.stackexchange.com/questions/82519