- Assicurati di avere indici sui campi che si trovano nelle tue istruzioni WHERE e nelle condizioni ON, le chiavi primarie sono indicizzate per impostazione predefinita ma puoi anche creare indici manualmente se necessario.
-
Verifica se devi davvero selezionare ogni colonna in tutte le tabelle? In caso contrario, assicurati di selezionare solo le colonne di cui hai bisogno, evita di utilizzare select*
-
Ricontrolla se hai davvero bisogno di LEFT JOIN, in caso negativo, usa INNER JOIN.
-
Se le prestazioni continuano a rappresentare un problema anche dopo aver modificato la query, valuta la possibilità di denormalizzare lo schema per eliminare i join
-
Potresti anche considerare di ridurre il carico sul database utilizzando applicazioni di memorizzazione nella cache come sphinxsearch e memcached
-
Controlla che nessuno dei tuoi join riguardi viste piuttosto che tabelle effettive
riferimenti:
http://dev.mysql.com/doc/refman /5.0/en/create-index.html