29/01/2011, 08:15
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses Puntos: 300 | |
Respuesta: mucha lentitud desde hace algunos dias Mayid, sería algo así como una subconsulta a la antigua usanza, pero con un buen uso de los índices. Es clave que los campos por los que haces la union (ON ...) sean primary key y índice. Ya nos dirás si te sirve. Respecto a las otras dos consultas, deberías decirnos algo sobre las relaciones usuarios, fotos, albums, categorías. Entiendo por lo que tienes que a un usario pertenece uno o varios álbumes de fotos, álbumes que pueden clasigifcarse según una o a varias categorías; dentro de ese album se incluyen fotos de un total de fotos que pertenece al usuario a través del album. El usuario marcará en el album las fotos principales (que pareces guardar en otra tabla, llamada fotos_principales, y que, a mi juicio, sólo tiene sentido si las fotos son principales o no con otro criterio, fecha, por ej.; porque si fueran principales todo el tiempo, te bastaría con marcarlo en la tabla albums). Lo que parece claro es que las fotos sólo se vinculan al usuario por el álbum. Si eso es así y todas las fotos pertenecen a un álbum, todos los albumes pertenecen al menos a un usuario, se adscriben a una categoría, y en todos los álbumes hay una foto_principal, te sobran los left join y deberías usar siempre INNER JOIN. Cosa distinta es si puedes crear un album sin asignarlo a ninguna categoría, o no tener asignada ninguna foto principal. Tendrías que decirnos cuáles son las situaciones posibles. |