在 PostgreSQL 中,可以使用以下方法查看当前连接数:


通过 SQL 语句查看当前连接数

查看总连接数

运行以下 SQL 查询,统计当前所有连接数:

SELECT COUNT(*) AS total_connections
FROM pg_stat_activity;
  • pg_stat_activity 是一个系统视图,包含了与 PostgreSQL 数据库实例的所有连接会话的信息。

按数据库查看连接数

如果想查看每个数据库的连接数,可以分组统计连接会话:

SELECT datname AS database_name, COUNT(*) AS connections
FROM pg_stat_activity
GROUP BY datname;
  • datname 表示数据库名称。
  • 结果会返回每个数据库的连接数统计。

按用户查看连接数

如果想统计每个用户所占连接数,可以使用以下 SQL 查询:

SELECT usename AS username, COUNT(*) AS connections
FROM pg_stat_activity
GROUP BY usename;
  • usename 表示数据库用户名称。

查看空闲连接数

如果关注状态为 idle 的空闲连接(连接已建立,但未执行任何操作),可以运行以下查询:

SELECT state, COUNT(*) AS count
FROM pg_stat_activity
GROUP BY state;
  • 常见的状态:
    • active:正在执行查询的连接。
    • idle:空闲的连接。

通过 PostgreSQL 管理工具查看连接数

  • 如果使用图形化数据库管理工具(如 pgAdmin),可以点击服务器节点下 “Statistics” 或 “Dashboard”,在界面中查看连接会话相关信息。

通过操作系统命令查看连接数

PostgreSQL 通常在默认端口 5432 上运行,你可以使用以下命令通过系统层面查看连接数。

查看端口连接数

运行以下 netstat 命令,统计当前连接到 PostgreSQL 默认端口的会话:

netstat -an | grep 5432 | wc -l
  • 该命令会返回本地 PostgreSQL 端口的连接数统计。

查看具体连接(带 IP)

如果你需要查看具体哪些客户端或 IP 地址连接到了数据库,可以运行以下命令:

netstat -an | grep 5432

查看最大连接数

PostgreSQL 限制了每个实例的最大连接数,默认情况下为 100。你可以运行以下 SQL 查看当前最大连接数配置:

SHOW max_connections;
  • 如果需要调整该值,可以修改 postgresql.conf 文件中的 max_connections 参数,并重启数据库。

关闭空闲连接

如果发现有大量空闲连接(状态为 idle),可以尝试关闭这些连接。以下 SQL 可以强制关闭所有空闲连接:

SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE state = 'idle';


postgresql如何查看当前连接数插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2025/08/02/postgresql-show-max-connections/