Foros del Web » Programando para Internet » PHP »

Rendimiento y optimización sistema web

Estas en el tema de Rendimiento y optimización sistema web en el foro de PHP en Foros del Web. Buenas, tengo una duda respecto al rendimiento de un sitio web desarrollado en php y al que, supongamos, le llegan 10.000 visitas diarias. Pongo un ...
  #1 (permalink)  
Antiguo 04/08/2014, 15:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 190
Antigüedad: 15 años, 11 meses
Puntos: 6
Rendimiento y optimización sistema web

Buenas, tengo una duda respecto al rendimiento de un sitio web desarrollado en php y al que, supongamos, le llegan 10.000 visitas diarias.
Pongo un pequeño ejemplo ya que sería algo trasladable al resto de la aplicación.

Supongamos que mi web tiene un leftbar donde tienen que verse categorías que tengo en una base de datos (Mysql).

Cuando un visitante entra, ¿conviene que la primera vez consulte las categorías a la bd y almacenar la consulta en una variable de sesion para no volver a realizar esa consulta o simplemente es mejor en cada pagina por la que se desplaza hacer la peticion a la base de datos?

En resumen, hacer siempre peticiones a la bd, o conviene ir almacenando los registros devueltos?

Muchas gracias.

Saludos.
  #2 (permalink)  
Antiguo 04/08/2014, 19:57
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 12 años, 4 meses
Puntos: 39
Respuesta: Rendimiento y optimización sistema web

A ver, como optimización del servidor, esta claro que cuanto menos conexiones hagas a la base de datos menos recursos consumirás. Si son pocos los datos que tienes que manejar, almacenarlos en variables globales o en cookies puede optimizar los recursos, pero en realidad también podrías hacer la consulta a la base de datos en cada página, porque seguramente en cada página hagas la conexión a la base de datos que es lo que más recursos consume, las consultas después son livianas, sobre todo en bases de datos con pocos registros o bien indexadas.

Sinceramente a no ser que los recursos de tu servidor sean muy escasos, para 10000 visitas diarias no tendrías que preocuparte por consumir los recursos, como ejemplo te voy a poner facebook o twitter que actualemente creo que están planteandose cambiar sus bases de datos de mySQL a noSQL o algo similar, pero claro, facebook puede tener quizás 10000 conexiones por segundo a sus servidores de bases de datos que además son enormes. Así que si tu web no es muy muy compleja y extensa no creo que los recursos de tu servidor vayan a ser un problema.
__________________
Diseño Web - Arisman Web
  #3 (permalink)  
Antiguo 04/08/2014, 22:20
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Rendimiento y optimización sistema web

deberias preocuparte mas por el ancho de banda que tenga disponible tu sitio web.

como dice el amigo, si tenes un buen sitio muy visitado pero tenes querys mal hechas de nada servirá todo el esfuerzo

otra cosa, la conexion a la db se abre una sola vez al inicio del query y se cierra al final explicita o automaticamente
lo que consume recusos son la querys que traen gran cantidad de datos por fila.

yo estoy en pleno proceso de rediseñar un proyecto tanto visual como en perfonmance y me encontré con eso: todas las querys train muchos campos y eso hace que sea lento todo.

basta con cambiar esto
select <muchos campos y procedures al pepe> from <muchas tablas joiniadas>
por eso
select <pk> from from <muchas tablas joiniadas>
  #4 (permalink)  
Antiguo 05/08/2014, 11:00
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Rendimiento y optimización sistema web

Cita:
Supongamos que mi web tiene un leftbar donde tienen que verse categorías que tengo en una base de datos (Mysql).

Cuando un visitante entra, ¿conviene que la primera vez consulte las categorías a la bd y almacenar la consulta en una variable de sesion para no volver a realizar esa consulta o simplemente es mejor en cada pagina por la que se desplaza hacer la peticion a la base de datos?

En resumen, hacer siempre peticiones a la bd, o conviene ir almacenando los registros devueltos?

Muchas gracias.
Aparte de las recomendaciones que te sugieren es importante tambien la versión de php que estés ejecutando y que utilices algún Optimizador de código como APC y Zend OPCache el ultimo ya viene integrado por defecto desde php 5.5
Tambien es importante que hagas cache de archivos lo puedes hacer mediante el envío de headers o mejor aun implementando un reverse proxy como varnish
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: mysql, optimización, registro, rendimiento, sistema, variable
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:57.