postgresql全文搜索查询太慢
Posted
技术标签:
【中文标题】postgresql全文搜索查询太慢【英文标题】:postgresql full text search query too slow 【发布时间】:2017-10-27 07:56:27 【问题描述】:一张表有两条sql,一条太慢了,谁能告诉我哪里出了问题,如何优化?
有他们的查询解释打击:
[---------编辑------]
【问题讨论】:
我在title
字段上有一个 gin 索引,在 city
字段上有一个 b-tree 索引;
未来:请将执行计划发布为formatted textnot screen shots。如果您认为它们太大而无法在此处发布,您也可以将它们上传到explain.depesz.com。
【参考方案1】:
第二个查询中的位图索引扫描返回更多的行,因为条件选择性较差。
因此,位图变得太大而无法放入work_mem
,而 PostgreSQL 继续为每个匹配块而不是每个匹配行存储一位(这些是提到的 有损 条目)。
在位图堆扫描期间必须检查更多的行,这会导致执行时间更长。
增加work_mem
以获得更好的结果。
【讨论】:
谢谢,成功了!您知道任何其他选项可以优化 sql 吗?我设置了work_mem=64M,还是需要300ms... 我在问题正文中添加了一张新sql解释的图片,谢谢~ 这只是需要多长时间 - 我认为它无法进一步优化。它必须处理大量数据。 好的,我很欣赏它。以上是关于postgresql全文搜索查询太慢的主要内容,如果未能解决你的问题,请参考以下文章
我可以以编程方式配置 PostgreSQL 以不消除全文搜索中的停用词吗?