首页/数据/SQL 速查/连接数与连接池观察
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

连接数与连接池观察

连接不是越多越好:数据库侧连接开销(线程或进程、内存)与应用池配置要匹配,短事务配够用的小池。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SHOW STATUS LIKE 'Threads_connected';
SHOW STATUS LIKE 'Threads_running';
SHOW VARIABLES LIKE 'max_connections';
SHOW VARIABLES LIKE 'wait_timeout';

PostgreSQL

PostgreSQL
SELECT state, count(*)
FROM pg_stat_activity
GROUP BY state;

SELECT count(*) FROM pg_stat_activity WHERE state = 'idle in transaction';
MySQL 连接模型每连接一个线程:连接多则线程与内存开销大
PostgreSQL 连接模型每连接一个进程:常配合外部连接池(pgBouncer 等)
idle in transaction空闲事务会持锁并阻碍清理,池要设空闲回收与超时

易错点

  • 把池开到数据库上限:忙时全量竞争,抖动放大;按响应时间与并发量估算池大小
  • 忽略 idle in transaction:空闲事务阻塞清理并持锁,需要连接回收与事务超时兜底

数据来源与参考

  • MySQL 8.0 Reference Manual · Connection Management
  • PostgreSQL Documentation · Monitoring Database Activity
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌