如何查看当前数据库的连接数?

wen IT资讯 235

本文目录导读:

如何查看当前数据库的连接数?

  1. MySQL
  2. PostgreSQL
  3. Oracle
  4. SQL Server
  5. MongoDB
  6. Redis

不同数据库查看当前连接数的方法有所不同,以下是几种主流数据库的查询命令:

MySQL

  • 查看当前总连接数(Threads_connected)

    SHOW STATUS LIKE 'Threads_connected';
  • 查看活跃/正在运行的连接数(Threads_running)

    SHOW STATUS LIKE 'Threads_running';
  • 查看所有当前的连接详情(包括用户、主机、状态等):

    SHOW PROCESSLIST;

    (如果权限足够,可以加上 \G 或使用 SELECT * FROM information_schema.processlist 以获得更详细的信息)

  • 查看最大连接数配置

    SHOW VARIABLES LIKE 'max_connections';

PostgreSQL

  • 查看当前活跃的连接数(不包括空闲连接):

    SELECT count(*) FROM pg_stat_activity WHERE state = 'active';
  • 查看所有当前连接数(包括空闲、等待等):

    SELECT count(*) FROM pg_stat_activity;
  • 查看所有连接详情

    SELECT * FROM pg_stat_activity;
  • 查看最大连接数配置

    SHOW max_connections;

Oracle

  • 查看当前总连接数(会话数)
    SELECT COUNT(*) FROM v$session;
  • 查看活跃连接数
    SELECT COUNT(*) FROM v$session WHERE status = 'ACTIVE';
  • 查看单个用户的连接数(例如用户名为 SCOTT):
    SELECT username, count(*) FROM v$session GROUP BY username;

SQL Server

  • 查看当前所有连接
    SELECT * FROM sys.dm_exec_connections;
  • 查看当前会话数
    SELECT COUNT(*) FROM sys.dm_exec_sessions;
  • 查看会话及用户信息
    SELECT session_id, login_name, status, host_name FROM sys.dm_exec_sessions WHERE is_user_process = 1;

MongoDB

  • 查看当前连接数(在 mongo shell 中):
    db.serverStatus().connections

    返回结果示例:

    { "current" : 10, "available" : 100, "totalCreated" : 200 }
    • current:当前活跃的连接数
    • available:可用的连接数
    • totalCreated:自启动以来创建的总连接数

Redis

  • 查看当前连接数(在 redis-cli 中):
    INFO clients

    或者:

    CLIENT LIST

    INFO clients 输出中,connected_clients 字段即为当前客户端连接数。


提示

  • 如果权限不足,部分查询(如 SHOW PROCESSLISTv$session)可能无法看到全部连接,或者只能看到自己的连接。
  • 频繁查询连接数本身也会消耗一个连接,但通常影响极小。

抱歉,评论功能暂时关闭!