最近公司的测试服务器数据库经常是连接爆满,几次加大了依旧满了。
明明只有几个人在用这个数据库,但是连接数到了三四百。于是就想是谁一直开着连接不释放,于是写了个SQL查了下连接使用情况。
SQL如下:
select SUBSTRING_INDEX(host,':',1) as ip , count(*) as connections
from information_schema.processlist
group by ip
ORDER BY connections desc;
结果:
很明显啦,除了18是服务器,48和42两个同学就有点过分啦,这下可以拿着证据去怼他们了:)。
从SQL看我们可以发现我们是从 information_schema这个库中的processlist表中查询的结果。
数据库的schema里放了很多关于数据库配置,性能等等的数据,比如用的processlist就存放了连接相关的数据。
我对数据库研究很浅,这里给大家推荐一个blog: