Index

ilike 搜尋真的使用它的索引嗎?

  • July 26, 2016

我有一個名為暱稱的列,並為它創建了索引。

create index test_idx on test_table using btree (nickname);

我的疑問是,

select * from test_table where nickname ilike '%pga%';

test_table 有大約 10 萬條記錄。當我解釋時,我得到了一些與創建索引之前相同的成本。這是為什麼。?

(使用 Postgresql 9.2)

編輯1:

暱稱列的字元不同(100)

LIKE在表達式開頭帶有萬用字元的不能使用 btree 索引。為了使該查詢使用索引,您需要創建一個 trigram 索引,您需要首先為其安裝pg_trgm擴展

create index on test_table using gin (nickname gin_trgm_ops);

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