Foros del Web » Programando para Internet » PHP »

¿Como puedo saber sobre ciertas estadisticas MySQL?

Estas en el tema de ¿Como puedo saber sobre ciertas estadisticas MySQL? en el foro de PHP en Foros del Web. Hola a todos. ¿Hay algun metodo por el cual yo pudiera saber la cantidad de consultas SQL realizadas durante una session? Quiero hacer un trabajo ...
  #1 (permalink)  
Antiguo 07/11/2005, 16:11
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
¿Como puedo saber sobre ciertas estadisticas MySQL?

Hola a todos.

¿Hay algun metodo por el cual yo pudiera saber la cantidad de consultas SQL realizadas durante una session?

Quiero hacer un trabajo de optimizacion sobre mi sitio... estuve sacando cuentas y creo que se realizan demasiadas consultas SQL, y tengo miedo de que cuando la web este online se supere el limite (10 mil x hora) rapidamente, ya que el sitio va a tener una cantidad importante de usuarios, el foro va a ser muy activo, etc.

Otra cosa que me preocupa y no se como controlar, es el tema de CERRAR siempre la base. Nunca olvido terminar las funciones con mysql_free_result y mysql_close, pero a veces entre los includes y las funciones propias de cada pagina se me hace todo un poco confuso...

¿Como hacen ustedes para controlar esta clase de cosas en sus sitios?

Muchas gracias.
  #2 (permalink)  
Antiguo 08/11/2005, 05:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
¿Hay algun metodo por el cual yo pudiera saber la cantidad de consultas SQL realizadas durante una session?
Lo primero sería centrarlizar tus consultas a tu BD. No sé si usas funciones "mysql_query()" directas de Mysql o usas alguna "capa de abastracción de BD" (ADOdb? .. otra? ..) o función própia para ejecutar tus consultas SQL a tu BD, pero, necesitas centralizar toda consulta para que pase por alguna función tuya y ahí mismo puedas crearte algún tipo de log/contador para hacer tus estadísticas.

Mysql en sí dispone de comandos SQL como los "SHOW ..." para ver estadísticas del servidor Mysql (entero) .. te serviría eso sólo si usas tu servidor Msyql sólo para esa aplicación .. son datos muy globales para hacerte una idea .. pero no para concretar nada.

Por ejemplo podrías usar "SHOW VARIABLES":
http://dev.mysql.com/doc/refman/5.0/...variables.html


Cita:
Otra cosa que me preocupa y no se como controlar, es el tema de CERRAR siempre la base. Nunca olvido terminar las funciones con mysql_free_result y mysql_close, pero a veces entre los includes y las funciones propias de cada pagina se me hace todo un poco confuso...
En PHP .. si usas conexiones NO persistentes (mysql_connect()) .. PHP al terminar tu script cierra toda conexión y libera memoria. No obstante es bueno que tu liberes memoria (vía mysql_free_result()) en el momento del flujo de tu script que ya no uses tu BD ..

Cita:
¿Como hacen ustedes para controlar esta clase de cosas en sus sitios?
Como no he trabajado con sitios con alto tráfico .. no me he preocupado mucho del tema .. pero si que sé que vía algún GUI de Mysql como por ejemplo phpMyadmin o cualquier otro (Navicat para windows .. etc) puedes ver los procesos de Mysql (lo único que hacen es presentar de forma más "gráfica" lo que entrega una sentencia SQL tipo "SHOW ..."): conexiones activas, recursos consumidos .. etc, así que si tengo alguna "sospecha" de algo .. recurro a esa información para evaluarla. (aunque los datos son "globales" .. no por cierta condición o aplicación que corra en el servidor y use mi BD).

Un saludo,
  #3 (permalink)  
Antiguo 08/11/2005, 12:30
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
Cluster muchisimas gracias por tu tiempo.

Te cuento, en mi caso uso mysql_connect() para conectar, pero igualmente siempre uso mysql_free_result() a medida que paso los resultados a arrays, y cierro siempre con mysql_close().

Tambien, como vos decis, el sql lo envio directamente con
mysql_query($sql) or die("mensaje error");

Pero ahora que lo mencionas veo claramente como podria hacer un "contador de queries".

Lo que no tengo idea de como hacer, es como ver con PHP_MyAdmin esa informacion sobre los procesos del MySQL Server... uso el MyAdmin que trae mi hosting ¿Ese me sirve o necesito alguna version diferente?

Muchas gracias!
  #4 (permalink)  
Antiguo 08/11/2005, 13:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Lo que no tengo idea de como hacer, es como ver con PHP_MyAdmin esa informacion sobre los procesos del MySQL Server... uso el MyAdmin que trae mi hosting ¿Ese me sirve o necesito alguna version diferente?
No sé lo que es tu "MyAdmin" .. pero si usas un servicio de hosting, ..mmm normalmente esa información no la puedes ejecutar (hacer un SQL para SHOW ....).

No es solución el usar o instalar phpMyadmin tal versión .. sino que normalmente las ejecuciones de un comando SQL tipo "SHOW ..." (viste la documentación oficial de Mysql al respecto?) se deniegan para el usuario que te asignaron para tus BD.

De todas formas . .pruebalo. Toma tu "MyAdmin" y donde puedas ejecutar SQL .. haz un:
SHOW VARIABLES

Un saludo,
  #5 (permalink)  
Antiguo 10/11/2005, 11:46
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 13 años
Puntos: 2
intentare, muchas gracias !
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:05.