P.P*_*ter 11 postgresql full-text-search postgresql-9.1
我有一个 PostgreSQL 9.1 数据库,其中包含 10M+ 行和一些需要相似性和类似%word%搜索的文本字段,所以我决定使用 trigram 索引。
最初,我开始使用 GIN 索引,但现在我想知道我是否应该使用 GIST。
该理论说:
我试图同时创建GIN和GIST索引,并在实践中发现以下内容(在我的数据集上):
LIKE '%word%'查询,GIN 的速度与第一次 GIST 大致相同(甚至慢 5-20%)(当查询中的三元组索引尚未缓存时)。LIKE '%word%'查询,如果最近搜索了查询中的三元组,GIN 大约比 GIST 快5倍。无论缓存如何,GIST 始终具有相同的速度。% 'word'(相似性)查询,GIN 大约比 GIST慢5-8倍,具体取决于索引的缓存性。UPDATE表中有语句,它似乎增长得更快。除非,当然,我VACUUM FULL经常不够。所以我看到了理论和实践之间的一些差异:
LIKE '%word%'查询。UPDATE语句和 5-10k 条INSERT语句,使用 GIN 是否明智,每周VACUUM可能是合理的(周末使用不多),还是真的会伤害UPDATE和INSERT性能?| 归档时间: |
|
| 查看次数: |
3546 次 |
| 最近记录: |