Cuando hago un explican en mi consultaDeshacerse de "Uso temporal; Usando filesort"
veo que ha "Uso temporal; Usando filesort" bajo "extra" para la primera fila . Entiendo que esto es malo, pero no sé qué significa exactamente ni cómo solucionarlo.
Si desea ver a mi consulta, he aquí una pregunta más general le pregunté por la misma consulta: MySQL query optimization and EXPLAIN for a noob. Como referencia, la consulta implica 24 tablas y 23 combinaciones.
Mis preguntas ahora son:
- ¿Qué "Uso temporal" y "Uso de filesort" significa?
- Suponiendo que son malos, ¿cómo deshacerse de ellos?
Creo que significa que "el optimizador de consultas no puede usar un índice en la tabla para recuperar los datos en el orden final; el conjunto de resultados probablemente sea demasiado grande para la memoria, por lo tanto, los resultados intermedios se almacenarán en un archivo que luego se clasifica ". No es automáticamente malo cuando el DBMS usa archivos temporales y los ordena; puede ser la mejor manera de responder a la consulta (el optimizador cree que es). –
Se trata de utilizar un filesort porque no tiene un índice en los campos de clasificación. Considere agregar un índice en los campos requeridos. Publique sus declaraciones de creación de tablas y la consulta si desea que ayudemos / – Konerak