-1 postgresql index postgresql-extensions
如何使用非锚定搜索模式索引以下语句
SELECT somefield
FROM sometable
WHERE lower(somefield2) like '%foo%';
Run Code Online (Sandbox Code Playgroud)
有些行有超过 2k 字节。
撇开长度不谈,btree 索引无助于该查询。您可以创建一个哈希索引,但这也只有在查询需要与整个列完全匹配时才有帮助。不适用于子字符串模式。首先做你想做的,添加pg_trgm
扩展:
CREATE EXTENSION pg_trgm;
Run Code Online (Sandbox Code Playgroud)
然后创建一个三元组索引:
CREATE INDEX trgm_idx ON sometable
USING GIN (somefield2 gin_trgm_ops); -- can also be GIST
Run Code Online (Sandbox Code Playgroud)
三字母索引可以帮助SQL的找到匹配LIKE
且ILIKE
和正则表达式模式。
有关更多信息,请参阅文档 pg_trgm
归档时间: |
|
查看次数: |
201 次 |
最近记录: |