postgres计数与相似的条件

时间:2017-06-07 19:19:36

标签: sql postgresql count

我是Postgres的新手并试图弄清楚如何在where子句中使用'Like'来提高计数查询的性能。

    select    count(*) 
    from master_data 
    where name ilike '%<userInput>%';

我估计值很好。我搜索了一些链接,发现我们可以通过使用以下查询快速获得整个表的计数。

 SELECT reltuples AS approximate_row_count FROM pg_class WHERE relname = '<TableName>'; 

然而,对于具有相同条件的计数,我仍然无法弄清楚。 请建议。我已经提到的链接。

https://wiki.postgresql.org/wiki/Count_estimate

https://www.citusdata.com/blog/2016/10/12/count-performance/#dup_counts_estimated_filtered

Postgres版本 - 9.5.4

2 个答案:

答案 0 :(得分:3)

你必须使用LIKE吗? 也许用IN做点什么是可能的? http://www.postgresqltutorial.com/postgresql-in/

答案 1 :(得分:2)

您可能对trigram索引感兴趣。这可以通过通配符专门处理like。您可以从documentation开始。