L’utilizzo degli indici di tabella nei database consente di trovare le informazioni all’interno del database in modo più rapido ed efficiente rispetto al mancato utilizzo degli indici di tabella. I due tipi di indice comunemente utilizzati nella progettazione di database sono un indice univoco e un indice non univoco. È importante conoscere la differenza tra questi due tipi e il modo migliore per utilizzarli nella progettazione del database.
Che cos’è un indice di tabella?
Un indice di tabella è un metodo in cui indicizzare le informazioni contenute in una tabella di database. Gli indici delle tabelle funzionano allo stesso modo degli indici di un libro, consentendo di trovare rapidamente le informazioni contenute nella tabella. Gli indici di tabella vengono generalmente creati utilizzando una colonna in una tabella, ma possono anche contenere più di una colonna. Le colonne indicizzate sono le colonne utilizzate nelle query per trovare le informazioni.
Indice unico
Un indice univoco è proprio questo, unico. Un indice univoco contiene un solo valore “like” nella colonna indicizzata. Questo tipo di indice è comune quando ogni riga di informazioni è unica per se stessa e nessun’altra riga conterrà informazioni simili. Quando viene impostata una chiave primaria su una tabella, questo è il metodo di indicizzazione utilizzato per quella colonna.
Indice non univoco
Un indice non univoco è quando la colonna o le colonne indicizzate hanno valori duplicati. Questo tipo viene in genere utilizzato quando si collega o si unisce una tabella a una seconda tabella per restituire più risultati. Un utilizzo comune di questo tipo è quando si archiviano più righe che si ricollegano a un singolo indice univoco in una seconda tabella.
Quando utilizzare gli indici
Gli indici consentono un accesso rapido alle informazioni nel database, ma hanno un costo in termini di prestazioni. A prima vista, l’indicizzazione di ogni singola colonna sembra un’ottima idea. In effetti, questo rende le tue query e l’accesso ai dati più lenti e meno efficienti. Ogni colonna indicizzata deve essere aggiornata nel database ogni volta che viene eseguita una query INSERT, DELETE o UPDATE. Nelle query più grandi ciò potrebbe rallentare le prestazioni. Un indice dovrebbe essere utilizzato solo sulle colonne a cui si fa riferimento nelle query per trovare le informazioni nel database.