Ver Mensaje Individual
  #9 (permalink)  
Antiguo 31/05/2009, 10:08
Avatar de Jhonnyf
Jhonnyf
 
Fecha de Ingreso: septiembre-2007
Ubicación: Dentro de mi
Mensajes: 87
Antigüedad: 16 años, 8 meses
Puntos: 5
Respuesta: ¿Más Sentencias SQLs o Más codigo PHP?

Cita:
Iniciado por PatomaS Ver Mensaje
Hola

En las computadoras actuales, la capacidad de procesamiento es muy elevada, por lo que en general, con scripts bien hechos, esta no represetna un problema.

El acceso a disco es relativamente costoso, no solo porque las operaciones están sujetas a diferentes nieveles de carga, si no porque tienes como añadido el procesamiento del propio script. Sin embargo, como regla general, leer es barato, escribir es caro.

Sobre el procesamiento de la BD en si, asumiendo que tus consultas se conectan, abren la BD, se ejecutan y cierran la conexión, están generando una recarga significativa en el sistema; aun si leen 1Kb. Si utilizas conexiones persistentes mientras haces las consultas que mencionas, rebajas la carga del sistema significativamente, pero luego es vital que cierres la conexión.

Si el sistema tiene muchos usuarios concurrentes, las conexiones persistentes son aun peor que si no lo son ya que MySQL tiene que lanzar más y más hijos por consulta, aun en los momentos en los que no esté especialmente ocupado.

Si por otro lado, la consulta va a generar un resultado de megas y megas, su procesamiento en php requiere de un código muy bien hecho para que no recargues la memoria del sistema.

Y para no dar más vueltas, en general, si puedes hacer el trabajo con una sola consulta SQL y posterior procesamiento en PHP, esa es la mejor opción.

Por supuesto, haz las cosas de la forma más eficiente posible, haz la consulta solo por los datos que realmente necesitas y no por la BD entera o el registro entero, optimiza tu código php, trata de no generar copias del array si este tiene muchos datos, libera la BD tan pronto como puedas, etc, etc.

Felicidad
Excelente respuesta...

ahora una duda más, es una modificacion a un sistema ya creado, que ya tiene su conexion activa y todo; solo reutilizo una funcion para sacar más datos.... y es ahi mi duda ya que actualmente estoy haciendo 1 consulta por cada categoria cuando puedo usar un Array declarado de forma Global o un puntero global para moverme en los datos, esa funcion es una sub,sub,sub,sub funcion de la clase :D
__________________
*en construccion*