2011-05-25 97 views

回答

7

WHERE條件可能不會受到影響,但ORDER BY絕對是影響

PostgreSQL Index Ordering Documentation

+0

與鏈接尚未發行版本的文檔是什麼? – 2011-05-25 21:27:43

+2

這是一個重要的位:*一個重要的特例是ORDER BY與LIMIT n的組合:顯式排序將必須處理所有數據以識別前n行,但是如果存在與ORDER BY匹配的索引,則前n行可以直接檢索,而根本不掃描其餘部分。* – Mel 2011-05-25 21:31:39

+0

@Milen A. Radev感謝您指出它,修正指向已發佈版本。我認爲谷歌可能也會回答OP的問題。 – Kallex 2011-05-25 21:32:12

6

PostgreSQL(或任何其他數據庫引擎,就此而言)將以任何一種方式讀取您的索引。您將得到索引掃描或反向索引掃描。

問題是當你有多列掃描。在這種情況下:

index on (foo, bar) 

會爲foo asc, bar asc工作,以及foo desc, bar desc。在某些數據庫上,這在foo desc, bar asc(反向掃描foo,忽略欄)或foo asc, bar desc(掃描foo,忽略欄)上不起作用。

0

降序可以給你一個刺激,如果列(S)包含由「最近」的價值觀引用了順數據 - 日期列,ID列等

一般而言,表/索引將有儘管如此,爲了讓它有所作爲真的很大。

它不會影響返回的東西,只是如何。

相關問題