我使用的是Postgres DB,我有一个名为MyObjects
的表,其中有几个varchar列。值不会是分隔的单词(例如,网址,名称等)。我将根据这些专栏进行过滤。搜索某个单词将在值的开头,中间或结尾对应的行。
表本身不会很大(开头的行数大约是n * 10 ^ 3,但它会增长到大约n * 10 ^ 5行)
在这种情况下是否甚至需要索引?如果是这样 - 你建议什么样的指数?
谢谢!
答案 0 :(得分:0)
如果您正在寻找可以帮助搜索模式为WHERE col LIKE '%string%'
的索引,唯一的选择是使用pg_tgrm
的GIN或GiST索引。
这些索引可能变得非常大,如果你搜索短子串,它们就不会有太多帮助。
要确定这样的索引是否会为您的案例中的顺序表扫描带来好处,您必须尝试一下 - 一般都无法回答。