我是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
答案 0 :(得分:3)
你必须使用LIKE吗? 也许用IN做点什么是可能的? http://www.postgresqltutorial.com/postgresql-in/
答案 1 :(得分:2)
您可能对trigram索引感兴趣。这可以通过通配符专门处理like
。您可以从documentation开始。