Ceci n'est pas un blog

Blog personale di Ivan Agliardi con pagine di informatica, linguaggi, idee…

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.

A proposito di Ivan Agliardi

Ho immaginazione e creatività, ma non sono un artista. Faccio interagire tra loro aziende dando vita a nuove imprese, ma non sono un imprenditore. Mi occupo da oltre 15 anni di server Linux, applicazioni web, database, domini, hosting, housing, sicurezza informatica e sistemi embedded, ma non sono un tecnico. Faccio SEO, SEM, SMM e fornisco contenuti attraverso i miei copyrighter, ma non sono un uomo marketing. Ora ho di nuovo un blog, ma non sono un blogger. Sono solo un umanista e un informatico della prima ora. E mi circondo di gente con le palle :)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ivan Agliardi

Ivan Agliardi