如何提高计数所有行的性能

时间:2017-06-01 05:41:36

标签: postgresql count query-optimization

我像这样使用SQL:

TableA有200万条记录,搜索计数速度为25.1秒。

select count(*) from TableA;
表A有200万条记录,TableB也有200万条记录,得到TableA和TableB的计数速度3分钟。

如何提高搜索效率?

2 个答案:

答案 0 :(得分:2)

实现这一目标的方法很多:

Slow counting

Involving triggers(一种相当长的方法,但效率很高)

Getting close estimate而不是获得准确的计数加快了整个过程。

答案 1 :(得分:1)

您真的需要精确计算行数吗? 如果没有,您可以使用pg_stat_user视图,这将给您一个很好的估计。

 SELECT schemaname,relname,n_live_tup 
 FROM pg_stat_user_tables 
 WHERE relname='TableA'
 AND schemaname='yourSchema'