使用UNION ALL 進行高效查詢
嘗試在一張精度遞減的表,依序執行多個SELECT 語句效率很低另一個。相反,請考慮利用 UNION ALL 查詢將多個 SELECT 組合成一個高效率的表達式。
最佳化查詢:
SELECT * FROM image WHERE name = 'name105' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'name105' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
解釋:
此查詢使用三個SELECT 語句,每個語句的語句,每個語句的語句等級逐漸降低precision:
透過使用 UNION ALL 組合這些 SELECT,查詢可確保傳回第一個符合項,即使它僅基於一個參數。
好處:
注意:
在PostgreSQL 版本11 及更高版本中,在使用UNION ALL時考慮並行追加的可能性。這在某些場景下會影響查詢的可靠性。有關詳細信息,請參閱以下線程:
以上是UNION ALL 如何最佳化 PostgreSQL 中的遞減精度 SELECT 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!