如何计算开放数据库连接?

Fra*_*ank 14 java mysql servlets jdbc

我正在使用Java servlet开发一个Web应用程序来访问Mysql数据库,如何获取当前打开的数据库连接数?

编辑:

我试过"show processlist",它告诉我:2695159,但那不对,我只是在开发这个新项目,我是唯一的用户,没有那么多进程在运行,我想要的是数量用户访问我项目的数据库,而不是所有数据库用户的数量,而只是登录到我的数据库的只有一个表的用户.

小智 16

根据您的MySQL版本,您可以执行选择

SELECT COUNT(*) FROM information_schema.PROCESSLIST;

你可以where在用户,数据库和主机IP之间进行操作.

例如:

USE information_schema;
SELECT COUNT(*) FROM PROCESSLIST WHERE db ="mycase" AND HOST LIKE "192.168.11.174%"
Run Code Online (Sandbox Code Playgroud)


Aln*_*tak 9

您可以使用MySQL命令show processlist获取连接数.

但是,这也会向您显示使用相同的userID与数据库建立的任何连接,这些连接可能不是来自您的servlet.

一般来说,我建议您最好使用连接池对象(请参阅http://java-source.net/open-source/connection-pools)来管理与MySQL服务器的连接.这可以通过使DB连接保持持久性来提高性能,因此您不必总是为每个页面加载都有新的数据库连接开销.

如果您的servlet需要知道连接数,那么您的连接池应该附带一个方法,告诉您当前有多少连接处于活动状态.


Dmi*_*tov 2

显示进程列表