比較比方說,我們有一個耗時下面描述的查詢:優化聯接:與索引的表
(SELECT ...
FROM ...) AS FOO
LEFT JOIN (
SELECT ...
FROM ...) AS BAR
ON FOO.BarID = BAR.ID
讓我們假設
(SELECT ...
FROM ...) AS FOO
返回許多行(比方說10 M)。每一行都必須與BAR中的數據結合。
現在讓我們說我們插入的
SELECT ...
FROM ...) AS BAR
結果在表中,並特設指數(ES)添加到它。
我的問題:
怎樣的「加盟」與現場查詢性能從「加入」到包含以前現場查詢結果表中的表現不同,哪些ad hoc索引會被添加?
另一種方式把它:
如果加入過程緩慢,會有在實際存儲和索引,這是我們JOIN表中的任何增益?
這可能取決於您希望存儲的表的大小以及索引,因爲創建這樣的表,將新行插入表中,然後在該表上編制索引本身可能非常耗時... –
@astander:請注意,問題實際上是關於「選擇」(插入索引變慢,但這不是重點:))。 –
@astander:在選擇期間獲得或失去性能的事實恕我直言,不取決於要存儲的表的大小。我們正在談論解決方案A與解決方案B的相對錶現。不是關於絕對性能與表格大小的關係。 –