Hola, tengo un problema al que el estoy dando vueltas sin encontrar la solución:
Resulta que tengo un problema de saturación en el servidor por las consultas mysql de mi web, así que me he puesto a optimizarlas utilizando el explain de mysql, pero en todos los casos en los que utilizo el order by el explain me pone en extras
Using filesort lo que quiere decir según esta recomendación de optimización
http://www.mysql-hispano.org/page.php?id=29&pag=8
que debo modificar mi consulta porque mysql necesita un paso más para ordenar la consulta.
He leido los otros post que hay sobre este tema pero no consigo encontrar la respuesta.
http://www.forosdelweb.com/f86/consulta-optimizar-tiempo-respuesta-466285/ http://www.forosdelweb.com/showthrea...light=filesort
El ejemplo concreto es este:
Código:
EXPLAIN SELECT id_materia, descripcion_materia
FROM materias
WHERE tipo_materia = 'Posters'
ORDER BY id_materia
El resultado es este:
Código:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE materias ref tipo_materia tipo_materia 17 const 3 Using where; Using filesort
Los indices de la tabla son:
Código:
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
materias 0 PRIMARY 1 id_materia A 86 NULL NULL BTREE
materias 1 tipo_materia 1 tipo_materia A NULL NULL NULL BTREE
materias 1 descripcion_materia 1 descripcion_materia A NULL NULL NULL BTREE
En cuanto quito el order by todo va de maravilla, pero lo necesito para ordenar los resultados de la consulta.
No sé si me está escapando algo que no pillo... a ver si alguien me puede echar una mano.
Gracias de antemano.