Ottimizzare la gestione di un Database MySQL



Perché ottimizzare un Database

Occorre aggiornare costantemente un database perché questo sia ogni giorno più efficiente. Con efficienza si intende la velocità con la quale i dati vengono inviati dal database agli script che li richiedono. Perché questo sia possibile, occorre un database ben strutturato ed ottimizzato. In questa guida, mostreremo come ottimizzare al massimo il vostro database.


Sul Database

Indicizzare il Database

Il primo accorgimento per migliorare la velocità delle ricerche in caso di richiesta, è quello di inserire un indice sui campi utilizzati dalla parola chiave WHERE.

Esempio

Avete effettuato una ricerca di persone rispetto alla città. Occorre quindi indicizzare il campo città usando la seguente richiesta:
ALTER TABLE `test` ADD INDEX ( `città` );


Ripulire il Database

Alcuni dei vostri dati non necessitano più di consultazione. Perché non archiviarli? Le vostre tabelle saranno più leggere e le ricerche saranno più veloci.


Negli Scripts

Limiti di visualizzazione

Limitare la visualizzazione delle registrazioni ad una quantità predefinita e contenuta (in genere 10 per pagina) usando la parola chiave LIMIT nella richiesta.


Raggruppamento delle richieste

Raggruppate le vostre richieste nella parte iniziale degli script, come nell'esempio:
inizio dello script
connessione_database
richiesta1
richiesta2
...
disconnessione_database

Visualizzazione...
Elaborazione dati...
Ciclo...
Visualizzazione...
...


Nascondere

Se il vostro database contiene dati che non vengono utilizzati di frequente, potete nasconderli. Per esempio, generare pagine html solo quando modificate le informazioni, riduce drasticamente gli accessi al database. Se il file html (mascherato) esiste, lo utilizzerete (usando INCLUDE), altrimenti andrete a generarlo. Nel momento in cui invierete la nuova pagina di news, potrete includere uno script che cancella il file html: verrà così ricreato la volta successiva in cui un visitatore lo richiede. Potete anche mascherare una sessione. Inserite i risultati della richiesta in una variabile di sessione e, quando non serve più la stessa richiesta, eliminate la variabile di sessione e la recuperate.


Utilizzate soltanto il necessario

Controllate che nelle vostre richieste SQL sia selezionato solo ciò di cui avete davvero bisogno, e soprattutto che non avete dimenticato le connessioni tra le tabelle (where table1.field = table2.field2) perché in caso contrario si impiega molto tempo per ottenere dei risultati (anche se dopo il WHERE inserite richieste corrette).


Evitate le opzioni troppo golose

Evitate di utilizzare HAVING così come GROUP BY, creano solo problemi di gestione.