Sommario:
Definizione - Cosa significa Index (IDX)?
Nei sistemi di database, un indice (IDX) è una struttura di dati definita su colonne in una tabella di database per accelerare significativamente le operazioni di recupero dei dati. Un indice è una piccola copia di una tabella di database ordinata per valori chiave. Senza un indice, i linguaggi di query come SQL potrebbero dover eseguire la scansione dell'intera tabella dall'alto verso il basso per scegliere le righe pertinenti.
Techopedia spiega Index (IDX)
Un indice su una tabella di database deve essere creato con cura, poiché gli indici consumano spazio e sono memorizzati nel database. Un indice può anche richiedere più tempo per le operazioni di scrittura, poiché l'indice deve essere aggiornato quando viene aggiornata la tabella sottostante.
Le diverse strutture di dati utilizzate per creare indici sono alberi B +, alberi bilanciati e hash. Utilizzando queste strutture dati, una scansione sull'intera tabella del database è relativamente semplice.
Gli indici possono anche essere creati su funzioni o espressioni. Un indice univoco impedisce voci duplicate nell'indice e nella tabella correlata, fungendo quindi da vincolo. L'ordine delle colonne è anche un aspetto importante dell'indicizzazione. La prima colonna indicizzata ha sempre una priorità; gli identificatori di riga vengono recuperati in base alle prime colonne indicizzate. In uno scenario normale, gli indici non restituiscono un valore ma localizzano solo i record.
Esistono generalmente due tipi di architettura di indice:
- Indici cluster: gli indici cluster archiviano i dati delle righe in ordine. È possibile creare un solo indice cluster su una tabella del database. Funziona in modo efficiente solo se i dati vengono ordinati in ordine crescente o decrescente o se viene specificato un limite nelle colonne coinvolte nella tabella. Una tale disposizione sequenziale dei dati sui dischi riduce le letture dei blocchi.
- Indici non cluster: negli indici non cluster, i dati sono disposti in modo casuale, ma un indice logico è specificato internamente dall'indice. Pertanto, l'ordine dell'indice non è uguale all'ordinamento fisico dei dati. Un'istruzione "crea indice" crea un indice non cluster per impostazione predefinita, che crea anche un indice cluster sulla chiave primaria. Le chiavi di indice sono ordinate qui con la foglia contenente un puntatore alla pagina. Gli indici non cluster funzionano bene con le tabelle in cui i dati vengono modificati frequentemente e l'indice viene creato su colonne utilizzate in ordine dalle istruzioni WHERE e JOIN.
