Un indice database è una struttura di dati che migliora la velocità delle operazioni in una tabella.
Ogni volta che un’applicazione web invia una query a un database, il database cercherà in tutte le righe della tua tabella per trovare quella che combacia con la tua richiesta. Quando le tabelle del tuo database aumentano, un numero maggiore di righe deve essere ispezionato ogni volta e questo può rallentare le prestazioni del database e quindi dell’applicazione.
Gli indici MySQL risolvono questo problema prendendo i dati da una colonna nella tua tabella e la archiviano alfabeticamente in un punto separato chiamato indice.
Gli indici possono essere facilmente creati con phpMyAdmin nel cPanel. Di seguito puoi trovare un esempio di un indice:
Prendiamo per esempio una tabella che chiameremo "esempio" con due sole righe - "numero" ed "impiegato". Quando esegui una semplice query SQL come:
1
|
SELECT * FROM sample WHERE number = 4;
|
MySQL verificherà tutti i record e restituirà solo quelli che hanno il valore impostato a 4.
Ad esempio, se si dispone di diverse migliaia di voci, questa sarà una richiesta lenta. In questo caso abbiamo un campo unico - “number”. Quindi possiamo creare un indice per questo campo. L’indicizzazione creerà un registro interno salvato dal servizio MySQL tramite la seguente query:
1
|
ALTER TABLE sample ADD INDEX (number);
|
Una volta che questo indice è impostato, la prossima volta che si desidera ottenere le informazioni per il valore impiegato 4, il servizio andrà direttamente a recuperarle utilizzando l’indice e restituirà le informazioni molto più velocemente.
Questo è solo un esempio basilare. Per i database più grandi, la differenza nel tempo di caricamento può essere significativa. L’indicizzazione del database può ridurre drasticamente il tempo di caricamento delle applicazioni Web.
Esiste un’altra query che puoi utilizzare per aumentare la velocità di caricamento del database:
1
|
OPTIMIZE TABLE sample;
|
Puoi controllare il nostro tutorial che ti aiuterà a Riparare/Ottimizzare la tuo database utilizzando phpMyAdmin: