usando - obtener datos mysql php




¿Cómo puedo ver cuántas conexiones MySQL están abiertas? (4)

¿Cómo puedo ver cuántas conexiones se han abierto durante la solicitud actual a través de mysql_connect en PHP que se ejecuta en Apache?

Sé que si llamo a la función mysql_connect 100 veces con los mismos parámetros, siempre devolverá el mismo enlace de conexión. No iniciará una nueva conexión una vez que la conexión ya exista.

Pero solo quiero asegurarme de que mysql_connect no está comenzando una nueva.

Estoy trabajando con un sistema heredado que contiene muchas llamadas a la función mysql_connect .

¿Hay alguna configuración en Apache o hay alguna forma de que pueda registrar esta cantidad de conexiones en el archivo de registro Apache o MySQL?


Creo que hay un par de formas:

SHOW STATUS WHERE `variable_name` = 'Threads_connected'

o puede hacer una SHOW PROCESSLIST y descubrir valores únicos en la columna Id . En la antigua API API mysql , existe la función mysql_list_processes que hace lo mismo que SHOW PROCESSLIST , también.

Pero primero debes trabajar para ti. Y tal vez le gustaría comprobar otras variables de ESTADO


Estado actual de las conexiones:

mysqladmin status

Mire los Threads: cuente. Se puede obtener información más detallada sobre las conexiones actuales con los comandos:

[email protected]:~$ mysqladmin -uroot -ppass extended-status | grep Threads
| Threads_cached                           | 0           |
| Threads_connected                        | 3           |
| Threads_created                          | 3           |
| Threads_running                          | 1           |

[email protected]:~$ mysqladmin -uroot -ppass processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 53 | root | localhost |    | Sleep   | 258  |       |                  |
| 54 | root | localhost |    | Sleep   | 253  |       |                  |
| 58 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

FYI mysqladmin -v -uroot -ppass processlist es análogo a show full processlist mysqladmin -v -uroot -ppass processlist show full processlist .

Los comandos pueden acortarse a cualquier prefijo único y llamarse simultáneamente:

[email protected]:~$ mysqladmin -v -uroot -ppass proc stat
+----+------+-----------+----+---------+------+-------+-----------------------+
| Id | User | Host      | db | Command | Time | State | Info                  |
+----+------+-----------+----+---------+------+-------+-----------------------+
| 53 | root | localhost |    | Sleep   | 951  |       |                       |
| 54 | root | localhost |    | Sleep   | 946  |       |                       |
| 65 | root | localhost |    | Query   | 0    |       | show full processlist |
+----+------+-----------+----+---------+------+-------+-----------------------+
Uptime: 1675  Threads: 3  Questions: 171  Slow queries: 0  Opens: 235  
Flush tables: 1  Open tables: 57  Queries per second avg: 0.102

No creo que pueda ver la cantidad de conexiones, pero puede limitar las conexiones al servidor mysql.


Puede usar el comando de MySQL show processlist para obtener la cantidad de conexiones.





apache