正确的查询来获取PostgreSQL数据库中的当前连接数

以下哪两项更准确?

select numbackends from pg_stat_database; select count(*) from pg_stat_activity; 

这两个要求是不相同的。 第一个的等效版本是:

 SELECT sum(numbackends) FROM pg_stat_database; 

在这种情况下,我认为这个版本比第二个版本要快一点,因为它的行数要less一些。 但是你不可能衡量一个区别。

两个查询都基于完全相同的数据,因此它们同样准确。

没有TCP连接将帮助你。 请记住,它不是针对特定的数据库

netstat -a -n | find / c“127.0.0.1:13306”

从查看源代码看来,pg_stat_database查询似乎为您提供了所有用户的当前数据库连接数。 另一方面,pg_stat_activity查询只给查询用户提供当前数据库的连接数。