Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/05/2009, 23:15
Avatar de dieguicho
dieguicho
 
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 5 meses
Puntos: 1
optimizar consulta al maximo

estimados..
tengo esta consulta

SELECT username, id
FROM (
SELECT users.username, MAX(photos.id) id
FROM users INNER JOIN photos
ON photos.user_id = users.id
WHERE users.status = 0 AND photos.status = 0
GROUP BY users.id) last_users
ORDER BY id DESC
LIMIT 0,6

y esta otra...

SELECT users.username, photos.id
FROM users
INNER JOIN photos ON photos.user_id = users.id AND photos.status = 0
WHERE users.status = 0
GROUP BY users.id
ORDER BY id DESC
LIMIT 0,6

cual de las dos es mejor? o las dos son pesimas?
a la tabla photos le agregue un INDICE a user_id

por las dudas las estructuras son las siguientes

users
.id
.username
.status

photos
.id
.status
.user_id

la idea de estas consultas es mostrar las 6 ultimas fotos cargadas sin repetir usuarios
lo que veo cuando hago EXPLAIN es que la tabla photos la recorre toda... veo porque me devuelve 1123234532 es necesario que la recorra todo?

cualquier ayuda me viene bien, estas consultas ya me hacen doler la cabeza
gracias!
__________________
On error no hago nada porque deje de fumar...