java - form - ¿Cómo contar conexiones db abiertas?
servlet upload image to server (8)
Estoy desarrollando una aplicación web utilizando el servlet de Java para acceder a Mysql db, ¿cómo puedo obtener la cantidad de conexiones a mi base de datos que está abierta actualmente?
Editar:
Probé "show processlist", me mostró: 2695159, pero eso no está bien, solo estoy desarrollando este nuevo proyecto, soy el único usuario, no podría tener tantos procesos en ejecución, lo que quiero es el número de usuarios que acceden a la base de datos de mi proyecto , no a la cantidad de usuarios de db, sino a los que han iniciado sesión en mi base de datos que tiene solo una tabla.
Puede usar el comando de MySQL show processlist
para obtener la cantidad de conexiones.
Sin embargo, eso también le mostrará cualquier conexión hecha con el mismo ID de usuario a la base de datos que puede no venir de su servlet.
En general, sugeriría que probablemente sea mejor que use un objeto Pool de conexión (vea http://java-source.net/open-source/connection-pools ) para administrar sus conexiones con el servidor MySQL. Esto puede aumentar el rendimiento haciendo que las conexiones de base de datos sean persistentes, por lo que no siempre tendrá la sobrecarga de una nueva conexión de base de datos para cada carga de página.
Si su servlet necesita saber la cantidad de conexiones, entonces su Pool de conexiones debe venir con un método que le indique cuántas conexiones están activas actualmente.
mostrar estado como ''Threads_connected'' o mostrar estado global como ''Threads_connected''
No estoy seguro de la diferencia entre esos dos en un contexto de usuario, y es posible que aún tenga el problema de que verá todas las conexiones, no solo las de su aplicación.
incluso puedes comprobar Threads_running para ver solo los hilos en ejecución (p. ej., no dormir).
mostrar la lista de procesos
Ejecute la siguiente consulta, lista el nombre de host y no. de conexiones de cada host:
SELECT host, count (host) FROM information_schema.processlist GROUP BY host;
Solo puede seleccionar de Information_Schema.Processlist
los datos que le pertenecen. Significa que puede usarlo para monitorear SOLAMENTE si ha iniciado sesión como root, de lo contrario, verá las conexiones provenientes de su usuario con el que inició sesión.
Si desea una supervisión adecuada de SQL, será:
SELECT variable_value
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
WHERE variable_name=''threads_connected''
Puedes usar esto
MOSTRAR ESTADO GLOBAL; o muestra un estado global como "Threads_connected";
desde el estado de Conexiones puede encontrar el número total de conexiones.
Dependiendo de su versión de MySQL, puede realizar una selección en
SELECT COUNT(*) FROM information_schema.PROCESSLIST;
y puede hacer un where
entre el usuario, la base de datos y la IP del host.
Por ejemplo:
USE information_schema;
SELECT COUNT(*) FROM PROCESSLIST WHERE db ="mycase" AND HOST LIKE "192.168.11.174%"
También puede contar la conexión abierta mostrando el estado del nombre de la variable Threads_connected
como este:
SHOW STATUS WHERE variable_name = ''Threads_connected'';
O también puede contar la lista de procesos directamente desde information_schema.PROCESSLIST
como a continuación:
SELECT COUNT(*) FROM information_schema.PROCESSLIST;