Foros del Web » Programando para Internet » PHP »

Multiples consultas SQL en script

Estas en el tema de Multiples consultas SQL en script en el foro de PHP en Foros del Web. Hola, He estado analizando el funcionamiento de una web que adminsitro, y me dí cuenta que hay varios scripts PHP (que son vastante usados) que ...
  #1 (permalink)  
Antiguo 09/11/2013, 06:09
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 14 años, 4 meses
Puntos: 5
Multiples consultas SQL en script

Hola,

He estado analizando el funcionamiento de una web que adminsitro, y me dí cuenta que hay varios scripts PHP (que son vastante usados) que llegan a realizar del una media de 60 a 80 consultas a la base de datos (cada vez que se ejecutan) o incluso algunos de ellos más.

La forma en que se realizan las conexiones es la siguente:
se abre una conexión con la base de datos, se realizan todas consultas y comandos SQL y se cierra la conexión al final del script.

Ahora mismo la base de datos no es muy grande y no presenta problemas de rendimiento en cuanto a tiempo de carga, pero ¿Podría llegar a serlo en un futuro si la base de datos creciera mucho?

Gracias.
  #2 (permalink)  
Antiguo 09/11/2013, 06:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Multiples consultas SQL en script

Si, lo pagarás bastante caro en performance en algún momento, y si el nivel de transacciones en una misma sesión, de un mismo usuario, en una misma PC es alto, puede generar un fallo en el pool de conexiones, por cuanto el cerrado de la conexión no la mata instantáneamente. Puede tardar y quedar en ese pool y en algún momento se saturará.
Lo he visto pasar.

A nivel de MySQL puede suceder que algunas mal cerradas queden en sleep, lo que también saturará al servidor, y se necesitará limpiarlas de cuando en cuando.
Hay soluciones para eso, pero es mejor evitar provocar esos fallos, antes que se produzcan.

De todos modos el tema queda fuera de tópico en este foro, porque es asunto de programación y no de base de datos.

El cómo se implementan modelos mejores lo puedes preguntar en el Foro de PHP, que es donde conocen ese aspecto mejor.

Te paso el post para allá.

Movido a PHP.
__________________
¿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 09/11/2013, 13:01
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: Multiples consultas SQL en script

Hola,

primero gracias por responder tan pronto.

No entiendo muy bien a lo que te refieres en la frase:

Cita:
si el nivel de transacciones en una misma sesión, de un mismo usuario, en una misma PC es alto, puede generar un fallo en el pool de conexiones...
¿Te refieres a si hay muchos usuarios interactuando con la base de datos a la vez, o si el mismo usuario realiza muchas conexiones puede llegar al limite máximo de conexiones?



En cuanto al rendimineto, es lo que me temía.
Intentando buscar una solución, se me ha ocurrido lo siguiente:
  1. Crear una o varias tablas temporales, cada vez que se ejecute el script, con los registros de las tablas sobre los que se realizan las operaciones SQL.
  2. Una vez creadas las tablas temporales recoger y actualizar los datos de ellas (SELECT, UPDATE, DELETE, etc...).
  3. Actualizar las tablas permanentes.
  4. Eliminar las tablas temporales cuando acaba el script

¿Sería una solución válida?
¿Mejoraría el rendimiento si la base de datos creciera mucho?

Última edición por DarkWater; 10/11/2013 a las 10:31

Etiquetas: multiples, mysql, sql
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 14:01.