文档首页 > > 开发指南> SQL参考> GIN索引> GIN提示与技巧

GIN提示与技巧

分享
更新时间: 2019/11/12 GMT+08:00

创建vs插入

由于可能要为每个项目插入很多键,所以GIN索引的插入可能比较慢。对于向表中大量插入的操作,我们建议先删除GIN索引,在完成插入之后再重建索引。与GIN索引创建、查询性能相关的GUC参数如下:

  • maintenance_work_mem

    GIN索引的构建时间对maintenance_work_mem的设置非常敏感。

  • work_mem

    往已有的启用了FASTUPDATE的GIN索引的插入操作期间,只要待处理实体列表的大小超过了work_mem,系统就会清理这个列表。为了避免可观察到的响应时间的大起大落,让待处理实体列表在后台被清理是比较合适的(比如通过autovacuum)。前端清理操作可以通过增加work_mem或者执行autovacuum来避免。然而,扩大work_mem意味着如果发生了前端清理,清理执行时间将更长。

  • gin_fuzzy_search_limit

    开发GIN索引的主要目的是为了让DWS支持高度可伸缩的全文索引,但在查询高频词时经常会出现全文索引返回海量结果的情况,同时从磁盘读取大量记录并对其进行排序会消耗大量资源,这在产品环境下是不能接受的。

    为了控制这种情况,GIN索引有一个可配置的返回结果行数上限的配置参数gin_fuzzy_search_limit。缺省值0表示没有限制。如果设置了非零值,那么返回结果就是从完整结果集中随机选择的一部分。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区