如何计算打开的数据库连接数?
我正在开发一个使用Java servlet访问Mysql db的Web应用程序,我如何获得当前打开的数据库的连接数?
编辑:
我尝试了“显示进程列表”,它向我展示了:2695159,但那不对,我只是在开发这个新项目,我是唯一的用户,不能运行那么多进程,我想要的是访问我项目数据库的用户数量,不是所有数据库用户的数量,而只是那些登录到我的数据库的用户,只有一个表。
我正在开发一个使用Java servlet访问Mysql db的Web应用程序,我如何获得当前打开的数据库的连接数?
编辑:
我尝试了“显示进程列表”,它向我展示了:2695159,但那不对,我只是在开发这个新项目,我是唯一的用户,不能运行那么多进程,我想要的是访问我项目数据库的用户数量,不是所有数据库用户的数量,而只是那些登录到我的数据库的用户,只有一个表。
根据您的MySQL版本,您可以在
SELECT COUNT(*) FROM information_schema.PROCESSLIST;
您可以在用户、数据库和主机 IP 之间执行 a 操作。where
例如:
USE information_schema;
SELECT COUNT(*) FROM PROCESSLIST WHERE db ="mycase" AND HOST LIKE "192.168.11.174%"
您可以使用MySQL命令来获取连接数。show processlist
但是,这还会显示使用相同用户 ID 与数据库建立的任何连接,这些连接可能不是来自您的 servlet。
一般来说,我建议你最好使用连接池对象(参见 http://java-source.net/open-source/connection-pools)来管理你与MySQL服务器的连接。这可以通过使数据库连接持久化来提高性能,因此您并不总是在每次页面加载时都有新数据库连接的开销。
如果您的 servlet 需要知道连接数,那么您的连接池应该附带一种方法来告诉您当前有多少个连接处于活动状态。