Per la Realizzazione di Siti Internet e Portali Dinamici mi sono sempre affidato come Programmatore PHP a dei database di tipo MySQL, poichè tale accoppiata risulta la più diffusa per questo tipo di soluzione ma anche la più performante.
Con il tempo ho ben compreso quanto fosse importante affiancare le doti di Programmatore MySQL a quelle di Programmatore PHP, poichè utilizzare però MySQL significa soprattutto ottimizzare le risorse e il codice in modo da poter ottenere estrazione e manipolazione dei dati in tempi accettabili.
In questo articolo presento dei piccoli suggerimenti che a mio parere possono Migliorare e Ottimizzare le Query MySQL e la Progettazione di un Database.
[Programmatore MySQL] - Progettazione del Database e Ottimizzazione delle Query MySQL
La prima cosa da tenere in mente è sicuramente la progettazione del Database, ricordatemi sempre di realizzare il vostro database in maniera ottimizzata, selezionado il tipo giusto di variabile per ogni campo e allocando il giusto spazio, ad esempio è inutile per un campo username allocare un varchar(255) quando magari non dovrebbe superare i 16 caratteri.
Di Consigli per l'Ottimizzazione delle Query MySQL ce ne sono tanti ma alcuni piccoli suggerimenti possono aiutare il Programmatore MySQL a scriverle meglio.
Selezionare solo le informazioni necessarie
E' molto importante infatti non eseguire Query selezionando tutte le informazioni, quando si può selezionare solo quelle di cui abbiamo bisogno, infatti supponiamo di voler selezionare nome e cognome di una taballa dipendenti.
Scrivere: Select Nome,Cognome From Dipendenti WHERE.... è molto più performante che la scrittura più veloce di Select * From Dipendenti WHERE.... estraendo solo successicamente i dati necessari.
Selezionare solo le righe necessarie
Un altro accorgimento può essere quello di selezionare solo il numero di righe necessarie, ad esempio tramite la clausola Limit, possiamo selezionare solo le prime 5 righe di un determinato database.
Quindi Scrivere: Select Nome,Cognome From Dipendenti WHERE....Limit 5 è molto più performante che la scrittura più veloce di Select Nome,Cognome From Dipendenti WHERE.... mostrando poi a video solo le prime 5 righe ma costringendo la query ad estrarre comunque tutti i risultati.
Ulteriori Suggerimenti
I suggerimenti per un Programmatore MySQL possono essere anche quelli di utilizzare correttamente la clausola WHERE oppure evitare le SubQuery a favore dell'uso di JOIN come descritto in un mio precedente articolo.
Per aver un quadro completo della situazione delle query, è possibile anche utilizzare la funzionalità EXPLAIN tale funzionalità ci permette di testare la query e riceverne delle informazioni utili sull'utilizzo delle risorse, cioè le tabelle coinvolte, se si effettua uno scorrimento parziale o totale e così via, utile per ogni Programmatore MySQL
Esempio: EXPLAIN SELECT nome_it FROM categorie ORDER BY nome_it ASC

Nella Colonna Type ad esempio vediamo che il sistema ci comunica che lo scorrimento del database è totale, questo non va bene nel caso ci troviamo in presenza di una tabella con molte righe, in questo caso essendo Rows valorizzato con 6 la query non presenta particolari Problemi.
Molta importanza ha anche il campo Extra abbinato al campo Type, se ad esempio come Programmatore MySQL vi trovate che il campo Extra è valorizzato con Using where che indica appunto che provate a fare una sottoselezione della query e il Type resta All significa che la vostra clausola Where non fa risparimare tempo alla nostra Query.
Ogni Programmatore MySQL inoltre dovrebbe sempre tenere sotto controllo il Log delle Query Slow che identifica le Query più lente su cui valutare o meno la possibilità di un ottimizzazione, anche se questo caso è possibile solo quando si ha la completa gestione del server (server proprietario o dedicato).
Un ulterriore possibilità di Ottimizzare le Query e i Database MySQL è rappresentato dagli Index (indici) di cui parlerò approfonditamente nel prossimo articolo di questa sezione.
