2016-11-24 95 views
0


我使用的是Postgres DB,我有一個表格叫MyObjects,有幾個varchar列。這些值不會被分開的單詞(例如,網址,名稱等)。我會根據這些列過濾很多。在行的開始,中間或結束處搜索某個單詞將對應的行。 表本身不會很大(開始行數將在n * 10^3左右,但會增長到n * 10^5行左右) 在這種情況下是否還需要索引?如果是這樣 - 你建議什麼樣的索引?
謝謝!BTREE vs GIN vs GIST index

回答

0

如果您正在尋找可幫助搜索模式的索引WHERE col LIKE '%string%',唯一的選擇是使用pg_tgrm的GIN或GiST索引。

這些索引可能會變得非常大,如果搜索短子串,它們不會有太大的幫助。

爲了弄清楚這樣的索引是否會對您的案例中的順序表掃描帶來好處,您必須嘗試一下–它通常無法回答。