Foros del Web » Programando para Internet » PHP »

Duda sobre optimización de mysql

Estas en el tema de Duda sobre optimización de mysql en el foro de PHP en Foros del Web. Hola muy buenas a todos y gracias por adelantado. Soy nuevo en el foro y en el mundo de la programacion (pido disculpas si no ...
  #1 (permalink)  
Antiguo 15/01/2015, 10:52
 
Fecha de Ingreso: enero-2015
Mensajes: 3
Antigüedad: 9 años, 10 meses
Puntos: 0
Duda sobre optimización de mysql

Hola muy buenas a todos y gracias por adelantado.
Soy nuevo en el foro y en el mundo de la programacion (pido disculpas si no e posteado esto en el lugar correcto). Tengo una incesante duda sobre una parte de mi proyecto.

El caso es que una de las acciones que debe hacer mi aplicacion es un algoritmo matematico en base a visitas y otros parametros(que obtengo de la base de datos.) de cada usuario. Como resultado obtengo un numero que almaceno de nuevo en la base de datos para elaborar una lista.

Esto me funciona al 100%.

Pero como el script principal pasa por un bucle que realiza varias consultas e inserciones en mi base de datos por cada uno de los usuarios. Me temo que al crecer el numero de usuarios acabe funcionando muy lento o dando problemas. Tengo previsto tomar un servidor dedicado, pero espero mucho trafico.

¿Sabeis de algun metodo mejor para realizar algo similar a lo que describo?
¿hay un numero maximo de consultas por script para no colapsar la base de datos?
Agradecere cualquier aporte.
  #2 (permalink)  
Antiguo 15/01/2015, 11:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Duda sobre optimización de mysql

Cita:
El caso es que una de las acciones que debe hacer mi aplicacion es un algoritmo matematico en base a visitas y otros parametros(que obtengo de la base de datos.) de cada usuario. Como resultado obtengo un numero que almaceno de nuevo en la base de datos para elaborar una lista.
Podría manejarse por medio de EVENT en la misma base de datos, pero siin saber como es el algoritmo que debe cumplirse, no hay modo de decirte cuánto se podría mejorar de ese modo.

Estás describiendo cosas demasiado genéricas. Tendrás que ser más específico y mostrar código.

En cuanto al uso de eventos en la base, es tema del foro de MySQL, no de este.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/01/2015, 12:28
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Duda sobre optimización de mysql

Cita:
Pero como el script principal pasa por un bucle que realiza varias consultas e inserciones en mi base de datos por cada uno de los usuarios. Me temo que al crecer el numero de usuarios acabe funcionando muy lento o dando problemas.
Algo muy importante que tienes que tener en cuenta es que el ejecutar tu query sin tenerlo almacenado en un cache del servidor de base de datos va bajar el rendimiento, ya que por cada vez que lo ejecutas el servidor de base de datos lo tiene que compilar y ejecutar.

Para este caso utiliza prepare statements que se encargan de "Cachear" los queries.

Citando la documentación de PHP en http://php.net/manual/es/pdo.prepare.php :

Cita:
Llamar a PDO::prepare() y a PDOStatement::execute() para sentencias que serán ejecutadas en múltiples ocasiones con diferentes parámetros optimiza el rendimiento de la aplicación permitiendo al driver negociar en lado del cliente y/o servidor el almacenamiento en caché del plan de consulta y meta información, y ayuda a prevenir inyecciones SQL eliminando la necesidad de entrecomillar manualmente los parámetros.
NOTA: Esto aplica para PDO.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.

Etiquetas: mysql, optimización, usuarios
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 17:12.