↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 16 / 15 / 14
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
历史版本。 PostgreSQL 8.3 已结束支持。 请参阅 当前版本手册.

52.4. GIN 使用提示和技巧 #

创建还是插入

向 GIN 索引插入数据可能较慢,因为每个值很可能需要插入许多键。因此,对于向表中执行的批量插入,建议先删除 GIN 索引,待批量插入完成后再重建它。

maintenance_work_mem

GIN 索引的构建时间对 maintenance_work_mem 设置非常敏感;在创建索引时节省工作内存并不划算。

gin_fuzzy_search_limit

开发 GIN 索引的首要目标,是为 PostgreSQL 中高度可扩展的全文搜索提供支持,而全文搜索经常会返回非常大的结果集。此外,这种情况常发生在查询包含非常高频的词时,因此庞大的结果集甚至没有用处。由于从磁盘读取许多元组并对其排序可能需要很长时间,这在生产环境中是不可接受的。(注意,索引搜索本身是非常快的。)

为了便于受控地执行这类查询,GIN 对返回行数设置了一个可配置的软上限,即配置参数 gin_fuzzy_search_limit。默认值为 0(表示无限制)。如果设置了非零限制,那么返回集合将是整个结果集的一个随机子集。

“软”的意思是,实际返回结果的数量可能会与指定的限制略有不同,这取决于查询以及系统随机数生成器的质量。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.