Foros del Web » Programando para Internet » PHP »

duda sencilla con unset y mysql_free_result

Estas en el tema de duda sencilla con unset y mysql_free_result en el foro de PHP en Foros del Web. buenas tardes, tengo una duda muy tonta que si bien no afecta en mucho a mi web quisiera saber si alguien me la puede aclarar: ...
  #1 (permalink)  
Antiguo 31/05/2012, 12:15
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Pregunta duda sencilla con unset y mysql_free_result

buenas tardes, tengo una duda muy tonta que si bien no afecta en mucho a mi web quisiera saber si alguien me la puede aclarar:

tengo este codigo:

Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT dato FROM mitabla WHERE ID=$ID");
  2. $resultados = mysql_fetch_array($consulta);

y mi duda es si:

Código PHP:
Ver original
  1. unset($consulta);
  2. unset($resultados);
  3. mysql_close($conexion);

logra lo mismo que:

Código PHP:
Ver original
  1. mysql_free_result($consulta);
  2. unset($resultados);
  3. mysql_close($conexion);

mi intencion es luego de terminar de hacer lo que tengo que hacer en la bd destruir todas las variables cerrar la conexion y liberar el espacio de las consultas que use para no sobrecargar el server inutilmente.
  #2 (permalink)  
Antiguo 31/05/2012, 12:25
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: duda sencilla con unset y mysql_free_result

No es lo mismo unset destrulle el contenido de la variable $consulta y mysql_free_result libera la memoria de la consulta antes realizada.


Saludos.
  #3 (permalink)  
Antiguo 31/05/2012, 12:26
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: duda sencilla con unset y mysql_free_result

otra duda que me surgio es si utulizando la funcion mysql_unbuffered_query() deja de ser nesesaria la funcion mysql_free_result() .
creeria que si pero nose que opinan ustedes
  #4 (permalink)  
Antiguo 31/05/2012, 12:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: duda sencilla con unset y mysql_free_result

bueno, recuerda que cuando php termina de igual forma todas esas variables se destruyen, el punto es que si tienes un proceso muy largo y pesado (en cuanto a tratamiento de bytes) usas esas funciones para vaciar la memoria en función de tus necesidades.

con unset sólo le indicas a php que libere la variable, pero en el caso de mysql_free_result loe dices a mysql que libere los resource id, así que es más efectivo, cualquier caso y por si me equivoco, consulta en la documentación.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 31/05/2012, 12:33
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: duda sencilla con unset y mysql_free_result

mysql_unbuffered_query Esta función como cualquier otra tienen su ventajas y desventajas.

una vez haces mysql_close() se libera la memorias del svr de db asi es que no creo que tengas que hacer un mysql_free_result.

Pero si no vas a trabajar con volúmenes muy grandes y tienes buenos recursos de svr
no creo por que tienes que estar preocupándote.



Saludos.
  #6 (permalink)  
Antiguo 31/05/2012, 13:02
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: duda sencilla con unset y mysql_free_result

hola gjx2 gracias por tu respuestas
Cita:
una vez haces mysql_close() se libera la memorias del svr de db asi es que no creo que tengas que hacer un mysql_free_result.
actualmente estoy utilizando estas funciones casi juntas por lo tanto si entendi bien mysql_free_result esta demas.
Cita:
bueno, recuerda que cuando php termina de igual forma todas esas variables se destruyen, el punto es que si tienes un proceso muy largo y pesado (en cuanto a tratamiento de bytes) usas esas funciones para vaciar la memoria en función de tus necesidades.
maycolalvarez mis prosedimietos no son muy largos pero si bastante elaborados, trabajo con vectores y matrices $datos[consulta] en lugar de $consulta como puse en el ejemplo de esta forma guardo todas las variables alli y luego hago un unset de $datos.
los volumenes de datos no son tan grandes (30-60 varchar de longitud 12 en promedio)
ustedes opinan que no es nesesario que destruya las variables al final del proseso ni que use mysql_free_result antes de cerrar la bd?
muchas consultas las realizo una sola vez y hay otras que las tengo dentro de un for o while que se ejecutan repetidamente variando por ejemplo una ID
Cita:
mysql_unbuffered_query() envía la query SQL a MySQL, sin recuperar ni colocar en búfer las filas de resultado automáticamente, como mysql_query() lo hace. Por una parte, esto ahorra una considerable cantidad de memoria con las consultas SQL que producen conjuntos grandes de resultados y se puede empezar a trabajar con el conjunto de resultado inmediatamente después de que la primera fila ha sido recuperada: no necesita esperar hasta que la consulta SQL completa haya sido ejecutada.
con esa aceleraria el prosesamiento de estos loop verdad?
MUCHAS GRACIAS POR LAS RESPUESTAS estaba en duda con este tema
  #7 (permalink)  
Antiguo 31/05/2012, 13:25
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: duda sencilla con unset y mysql_free_result

Cita:
Iniciado por gjx2 Ver Mensaje

una vez haces mysql_close() se libera la memorias del svr de db asi es que no creo que tengas que hacer un mysql_free_result.
Disculpame esto no es 100% cierto.

Mysql_close() cierra la conexión o sea no permite que sigas interactuando con el svr pero aun así el resultando estaría en el buffer.

Tienes que hacer un mysql_free_result Para poder liberar el buffer.
Te pido disculpas nuevamente.

Saludos.

Etiquetas: mysql_free_result, unset
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 13:54.