Comando `explain` per ottimizzare le query con MySQL

Quando un’applicazione raggiunge un livello di complessità elevato si rischia di perdere di vista alcuni dettagli – apparentemente minori – che spesso si rivelano fondamentali per una esecuzione armoniosa e ottimizzata dell’intera applicazione.

Dovendo gestire database molto articolati con MySQL, ad esempio, si incorre facilmente in piccoli errori di valutazione circa l’effettivo consumo di risorse che può generare una istruzione SQL. Può essere utile in questi casi ricorrere ad un semplice strumento che ci rinfreschi le idee circa la struttura della table che andremo ad interrogare: il comando `explain`.

Grazie al comando `explain` è possibile analizzare quali indici chiama in causa una query e ottimizzare di conseguenza le dichiarazioni INSERT, specie quando si ricorre a quelle multiple per memorizzare più righe con una sola istruzione SQL. Il comando `explain` vi mostra quali indici vengono utilizzati da ogni query, oltre ad altre importanti informazioni.

Per rendere più efficienti le query dovremo fare in modo che tutte le tabelle interessate vengano lette attraverso gli indici, senza subire uno scorrimento completo (table scan). In questo senso le informazioni ricavate mediante `explain` possono rivelarsi fondamentali.

Condivido

Leave a comment