Foros del Web » Programando para Internet » PHP »

Desconexiones en PHP!

Estas en el tema de Desconexiones en PHP! en el foro de PHP en Foros del Web. Hola a todos: Tengo la siguiente inquietud: Que pasa si en una pagina al cargarla abro una conexion a una tabla MySQL y antes de ...
  #1 (permalink)  
Antiguo 11/03/2004, 13:17
 
Fecha de Ingreso: marzo-2004
Ubicación: Argentina
Mensajes: 3
Antigüedad: 20 años, 1 mes
Puntos: 0
Desconexiones en PHP!

Hola a todos:

Tengo la siguiente inquietud:

Que pasa si en una pagina al cargarla abro una conexion a una tabla MySQL y antes de llegar a la parte en donde se desconecta de la base el usuario presiona por ejemplo el boton STOP del ie, o cierra la ventana?..
Yo supongo que la conexion queda abierta y colgada... y esto en un site en donde hay hasta 300 usuarios al mismo tiempo y todos generando constantemente conexiones puede traer aparejado un gran consumo de memoria del server MySQL...
comento esto porque es lo que actualmente me sucede con un site que tengo.. el webmaster me quiere suspender la cuenta porque el servidor MySQL le tiro que mi site utilizo el 60% de la memoria en las ultimas 24hs. promedio... cosa que segun el es horrorosa ya que mi site no es un site que tenga que generar tanta demanda de la memoria... y me dijo que revise mis scripts que seguramente en ellos debe residir el problema.
Ademas me advirtio qe el servidor SQL encontraba muchas conexiones colgadas provenientes de mi site...
Alguien podria explicarme que pasa y como yo podria si o si cerrar una conexion por mas de que no se llegue a cargar toda la peich.. o habria forma de detectar que el user... presiono el boton stop o cerro la ventana para asi cerrar la conexion a la base???
Bueno desde ya agradezco la ayuda aportada...
Saludos

Ezequiel
Desde Argentina
  #2 (permalink)  
Antiguo 11/03/2004, 14:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
PHP al terminar la ejecución de un script cierra las conexiones abiertas a tus BD y libera memoria de tus variables y demás punteros abiertos que pudieras haber abierto ...

Si cierras el navegador antes de que termine el proceso de PHP se cierran igualmente las conexiones .. si tal vez no será al instante como en el caso de terminar el script en su totalidad .. será al pco tiempo (PHP ya tiene mecanismos para eso).

Lo mismo sucede con la própia conexión cara a la Base de datos ... todas tienen su tiempo máximo de "time out", justamente lo que vé tu administrador con respecto a tu BD son esas conexiones inhabilitadas.

Optimiza tus consultas SQL .. por ahí puedes empezar. Hay muchas cosas que se pueden solventar de muchas formas, pero siempre hay alguna más optima que otras. Ejemplo .. hacer una consulta tipo:

SELECT *.tabla1,*.tabla2 FROM tabla1,tabla2 WHERE id.tabla1=id.tabla2

Es (a nivel de rendimiento) menos efectivo que usar LEFT JOIN y uniones en general .. ademas que usar por ejemplo * para luego usar realmente X campos (menos que el total de esa tabla) tambien ayuda a optimizar ...

Luego, puedes liberar memoria de las consultas realizadas tan pronto no uses tu consulta realizada (mysql_free_result() .. ) y cerrar la conexión a tu BD cuando ya no la uses .. (msyql_close()) aunque estas operaciones queden al final casi de un script tuyo.. algo de recursos se optimiza.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 11/03/2004, 23:37
Avatar de Blag  
Fecha de Ingreso: septiembre-2003
Ubicación: Lima
Mensajes: 68
Antigüedad: 20 años, 7 meses
Puntos: 0
La única manera que tu conexión al MySQL se quede "Pegada", es que utilices una conexión de tipo persistente con mysql_pconnect......en caso contrario.....pongas stop o cierres la páginas, la conexión se cierra.

Trata de optimizar tus querys y eso debería corregir el problema......sino....mejor cambiate de hosting

__________________
Alvaro Tejada Galindo
Consultor ABAP FI/HR
SinglePath's Experimental HomePage
Foro de ABAP en SoloCodigo.com
Revista "Código Latino"
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 11:33.