【问题标题】:Is there any way to replace like condition in postgresql?有什么方法可以替换 postgresql 中的类似条件?
【发布时间】:2019-03-13 07:29:04
【问题描述】:

我的代码中有以下查询。由于like 条件,获取数据需要一分钟。如果您有什么方法可以更换或加快检索时间,请告诉我。

select id, url
from activitylog
where resource = 'jobs'
  and (method = 'saveTechStatus')
  and (url like '%/jobs/saveTechStatus/81924/%')
order by timestamp desc;

【问题讨论】:

  • 你想达到什么目的?替换类似条件?
  • 我想减少检索时间。
  • url列的类型是什么?有索引吗?
  • 您是否尝试在(resource, method) 上创建索引?
  • edit您的问题并添加使用explain (analyze, buffers)生成的execution plan(不仅仅是“简单”解释)作为@ 987654323@, no screen shots 请。或将计划上传至explain.depesz.com

标签: postgresql sql-like database-performance


【解决方案1】:

您可以使用三元组索引:

CREATE EXTENSION pg_trgm;
CREATE INDEX ON activitylog USING gin (url gin_trgm_ops);

这可能会占用大量空间,但可以加快LIKE 条件。

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多