Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2007, 23:45
Pitu.
 
Fecha de Ingreso: enero-2005
Mensajes: 65
Antigüedad: 20 años, 2 meses
Puntos: 0
Optimizar consulta

Hola, tengo la siguiente consulta:
select a.id as idp, a.es as nombre,a.foto,b.es as descrip,c.es as precio,c.promo from productos as a, descripcion as b,precio as c where a.idCategoria=50 and b.idProducto=a.id and c.idProducto=a.id GROUP BY a.id ORDER BY a.id DESC

Weno, respecto a esta consulta comentar que idProducto e id es PK en las tablas que se usa (por lo tanto tiene indice), a parte tengo un indice en idCategoria. Osea todo lo que se usa en el where tiene un indice asociado.

Cuando hago un explain de la consulta obtengo lo siguiente:
table type possible_keys key key_len ref rows Extra
a ref PRIMARY,idCategoria idCategoria 4 const 37 where used; Using temporary
b eq_ref PRIMARY PRIMARY 4 a.id 1
c eq_ref PRIMARY PRIMARY 4 a.id 1

Como veis en la primera linea, en extra tengo where used; Using temporary. Si quito el group by obtengo un using filesort. Como puedo optimizar la consulta para evitar que me hago un filesort o una tabla temporal?

Muchas gracias, un saludo ;)