Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

cerrar conexion? liberar memoria? varias consultas en una pagina

Estas en el tema de cerrar conexion? liberar memoria? varias consultas en una pagina en el foro de Mysql en Foros del Web. Hola, no hace mucho que trabajo con bases de datos a nivel personal, hasta hace poco no las usaba mucho, el caso es que poco ...
  #1 (permalink)  
Antiguo 20/07/2007, 02:37
Avatar de xevisoyyo  
Fecha de Ingreso: mayo-2005
Mensajes: 166
Antigüedad: 18 años, 11 meses
Puntos: 1
cerrar conexion? liberar memoria? varias consultas en una pagina

Hola, no hace mucho que trabajo con bases de datos a nivel personal, hasta hace poco no las usaba mucho, el caso es que poco a poco voy creando mas utilidades usando bases de datos y como muchos he aprendido viendo manuales etc, pero hay algo que no me queda claro y es bastante basico

basicamente 2 puntos

1. por un lado he leido que no hace falta desconectar de la db por otro lado q si q mejor hacerlo
2. lo mismo con liberar memoria

Bien entiendo que depende mucho de las visitas, pongamonos en el caso de que hayan muchas porq con pocas tmp tendria mucho sentido la pregunta

encontre esta pagina por si quereis ver sobre el tema
http://www.desarrolloweb.com/faq/267.php

Bien, al caso, para yo aclararme os pongo un ejemplo practico de una pagina donde necesito hacer uso varias veces de la base de datos


Bien de manera burda un ejemplo para que me digais como deberia hacerlo

<html>
<p>................</p>
<p>................</p>
mysql_connect(host,login,password)
.............
.............
Mysql_free_result()
mysql_close()

<p>................</p>
<p>................</p>
<p>................</p>
<p>................</p>
mysql_connect(host,login,password)
.............
.............
Mysql_free_result()
mysql_close()

<p>................</p>
<p>................</p>
<p>................</p>
mysql_connect(host,login,password)
.............
.............
Mysql_free_result()
mysql_close()

<p>................</p>
<p>................</p>
</html>

bueno lo que quiero saber es si hay que abrir y cerrar cada vez,
a) ¿deberia solo cerrar al final de todas las consultas?
b) lo mismo con liberar espacio, ¿deberia hacerlo solo en la ultima consulta?
c) lo normal es q use includes para conectar y desconectar para facilitar, en tal caso, cerraria y liberaria varias veces en una misma pagina ¿muy mal?¿da igual?

decir que son consultas diferentes aunque normalmente a las mismas tablas


de momento hago poco uso de la db, pero poco a poco la uso mas y quiero hacerlo correctamente

se que me he enrollado un poco pero todo es referente a lo mismo, si copiais el ejemplo que puse y lo retocais como deberia ser, con un pequeño comentario me ayudaria mucho

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 23/07/2007, 20:03
Avatar de xevisoyyo  
Fecha de Ingreso: mayo-2005
Mensajes: 166
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: cerrar conexion? liberar memoria? varias consultas en una pagina

algún consejo?
  #3 (permalink)  
Antiguo 24/07/2007, 04:11
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: cerrar conexion? liberar memoria? varias consultas en una pagina

Tendrias que hacerlo al final de todas las consultas, solo un mysql_connect al principio y un mysql_close al final
  #4 (permalink)  
Antiguo 26/07/2007, 07:59
 
Fecha de Ingreso: mayo-2005
Mensajes: 15
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: cerrar conexion? liberar memoria? varias consultas en una pagina

Hola
yo no se que decirte de cerrar la conexión? creo que se liberaba sola.
liberar la memoria seria conveniente, aunque no estoy seguro de que eficiencia consigues.

Mi ultima experiencia con un website que he estado desarrollando donde hacía cada consulta con su conexión y liberación, e iba todo un poco lento por la carga de consultas, y me plantee optimizarlo.

La solución que adopté ha sido: guardar la conexión a una variable de sesión y la uso desde ahí para todas las páginas de la sesión.
Si que noté que se aceleran las consultas porque evitas realizar una conexión nueva cada vez. A poco que que sea el no hacer una nueva conexión en ahorro de tiempo de cpu, seguro que es mejor hacer la conexión una vez y almacenarla para todas las paginas que hacerla cada vez de nuevo para cada consulta.

De esta manera no necesitarías cerrar la conexión cada después de cada consulta, ya que es la misma conexión que usarás en el resto de los sitios.

Pedro.

Última edición por plcabgut; 26/07/2007 a las 08:06 Razón: mejora 2
  #5 (permalink)  
Antiguo 26/07/2007, 10:28
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: cerrar conexion? liberar memoria? varias consultas en una pagina

Hola xevisoyyo

Mira lo que debes hacer en tal caso, es limpiar memoria por pàgina de proceso "mysql_free_result". Php cierra automàticamente la conexiòn con la DB al terminar tu script, asì que no es obligataria cerrarla, pero si lo quieres hacer debe ir al fianl del proceso que contempla la utilizaciòn de la DB, osea ya a lo ùltimo y no abrir y cerrar varias conexiones como en tu ejemplo, estrìas siendo redundante.

En sintesìs, abre conexiòn, haz el proceso php, termina el proceso, limpia memoria, y ya!, si quieres como te digo despuès de limpiar memoria, cierra conexiòn.

Saludos, espero te sirva!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:18.