Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/11/2003, 04:30
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Veamos. mysql_query() le manda a MySQL la consulta. mysql_query() entonces espera ha recibir todos los registros y los va almacenando en un buffer temporal (en PHP). Una vez que ha recibido todos los datos, se ejecuta la siguiente linea de codigo despues del mysql_query(). Luego las llamadas a mysql_fetch_*() (y el resto que leen los registros) van leyendo los datos del buffer. Como PHP no sabe cuando vas a acabar de utilizar los datos develtos (puedes usar mysql_data_seek() para volver al principio para volver empezar), pues se lo tienes que decir tu explicitamente para que borre ese buffer. Si no le dices nada, lo borra al final del script.

Y una cosa es mostrar datos, y otra cosa distinta es leerlos. Por ejemplo, los scripts de envio de boletines (aunque es mal ejemplo, ya que tambien se podria "paginar"), donde se recorre la tabla de destinatarios y se le envia un email. Hay procesos en los que tienes que leer muchos registros para realizar con ellos acciones en PHP.

Ademas, he dicho 10000 por decir un numero, para hacer ver el tamaño de los datos leidos de la base de datos.

El objetivo de mysql_free_result() es liberar el buffer cuando nosotros estemos convencidos de que no vamos a neesitarlo mas. Como mysql_close(). Tiene mas significado cuando lo veas en "global". No pienses en los recursos consumidos por un solo script, sino en los que consumen el conjunto de scripts que se ejecutan simultaneamente en el servidor. Haz cuentas: 60 usuarios simultaneamente accediendo a un script de 30 registros de 500 bytes cada registro, son 60x30x500=900000 aprox un mega.

En el entorno web siempre hay que tener en cuenta que son multiples usuarios accediendo quizas simultaneamente. Y en servidores compartidos, quizas debes tener en cuenta tambien los usuarios de las otras webs con las que compartes servidor (no estoy seguro, no se exactamente como esta montado PHP en ese tipo de servidores).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.