Quando faccio un spiegare la mia interrogazioneCome liberarsi di "Uso temporanea; Usando FileSort"
vedo che ha "Utilizzo temporaneo; Usando FileSort" sotto "Extra" per la prima fila . Capisco che questo sia male ma non so cosa significhi esattamente o come risolverlo.
Se si desidera visualizzare la mia query, ecco una domanda più generale che ho posto sulla stessa query: MySQL query optimization and EXPLAIN for a noob. Per riferimento, la query riguarda 24 tabelle e 23 join.
Le mie domande ora sono:
- Cosa "Utilizzo temporaneo" e "Uso FileSort" significa?
- Supponendo che siano cattivi, come faccio a sbarazzarmene?
Penso che significhi "il Query Optimizer non può utilizzare un indice sulla tabella per recuperare i dati nell'ordine finale, il set di risultati è probabile che sia troppo grande per la memoria, quindi i risultati intermedi verranno archiviati in un file che viene quindi ordinato ". Non è automatico quando il DBMS utilizza file temporanei e li ordina; potrebbe essere il modo migliore per rispondere alla query (l'ottimizzatore pensa che sia). –
Sta usando un filesort perché non ha indice sui campi di ordinamento. Prendi in considerazione l'aggiunta di un indice sui campi obbligatori. Pubblica le tue dichiarazioni di creazione della tabella e la query se vuoi che ti aiutiamo / – Konerak