Mysql
 sql >> Database >  >> RDS >> Mysql

Ottimizzazione della query MySQL con più join sinistri

  • 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://www.sphinxsearch.com

http://dev.mysql.com/doc/refman /5.0/en/create-index.html