Tengo alojada
la web en piensa solutions. Por alguna razon, desde el viernes anda fatalmente lenta en algunas secciones. El factor comun de esas secciones es que usan la base de datos. Pero sin embargo hay alguna otra seccion que tiene bd y anda normal.
La cuestion es que desde el hosting dicen que ha de ser problema del script. Y yo no lo creía así en un primer momento. Es cierto que estuve modificando algo las consultas, y que por ejemplo hay un calculo sum() para conocer "las fotos mas votadas". Pero al margen de esto ultimo no hice nada que pueda haber causado tal lentitud! Y ademas los cambios anduvieron bien durante casi un dia.
Me resisto a pensar que el problema sea de mysql. Pero creo que lo de "mas votadas" es el problema. Aunque a otras secciones también las vi lentas!
Les dejo las consultas de la pagina principal (
la galeria) a ver si las ven a bien:
Código MySQL:
Ver original
SELECT album.id
, album.titulo
, album.descripcion
, album.id_usuario
, album.creado
, usuario.nombre
, usuario.apellido
, cat.categoria
, foto.nombre_foto
INNER JOIN usuarios
AS usuario
ON (usuario.id
= album.id_usuario
) INNER JOIN fotos_principales
AS principal
ON (album.id
= principal.id_album
)
SELECT album.id
, album.titulo
, album.descripcion
, album.id_usuario
, album.creado
, usuario.nombre
, usuario.apellido
, cat.categoria
, foto.nombre_foto
LEFT JOIN categorias
AS cat
ON (cat.id
= album.id_categoria
) LEFT JOIN usuarios
AS usuario
ON (usuario.id
= album.id_usuario
) LEFT JOIN fotos_principales
AS principal
ON (album.id
= principal.id_album
)
La consulta problematica a la que me refiero es la siguiente:
Código MySQL:
Ver originalSELECT img.id
, img.titulo
, img.nombre_foto
, img.tecnica
, img.medidas
, album.id
AS id_album
, album.titulo
AS titulo_album
, album.id_usuario
AS id_autor
, SUM(rate.puntaje
) promedio
, count(rate.puntaje
) AS votos
Quizás al tener más y más votos en las obras la consulta con sum() tarda mucho? Debería entonces almacenar un total en tabla aparte? La tabla puntuaciones es tipica: guarda el ip de la persona y el puntaje de uno a cinco que le da a una imagen.