Indice Cluster vs Non Cluster
Gli indici sono molto importanti in qualsiasi database. Vengono utilizzati per migliorare le prestazioni del recupero dei dati dalle tabelle. Sono logicamente e fisicamente indipendenti dai dati nelle tabelle associate. Pertanto, gli indici possono essere rilasciati, ricreati e ricostruiti senza influire sui dati delle tabelle di base. Il server Oracle può mantenere automaticamente gli indici senza alcun coinvolgimento di un DBA, quando le relative tabelle vengono inserite, aggiornate e cancellate. Esistono diversi tipi di indice. Qui ce ne sono un po.
1. Indici B-tree
2. Indici bitmap
3. Indici basati sulle funzioni
4. Indicatori di chiavi inversi
5. Indici cluster B-tree
Che cos'è un indice non cluster?
Dai suddetti tipi di indice, di seguito sono riportati indici non raggruppati.
• Indice B-tree
• Indice bitmap
• Indice basato su funzioni
• Indici di chiavi in retromarcia
Gli indici B-tree sono il tipo di indice dei database più utilizzato. Se il comando CREATE INDEX viene emesso nel database, senza specificare un tipo, il server Oracle crea un indice b-tree. Quando un indice b-tree viene creato su una colonna specifica, il server Oracle memorizza i valori della colonna e mantiene un riferimento alla riga effettiva della tabella.
Gli indici bitmap vengono creati quando i dati della colonna non sono molto selettivi. Ciò significa che i dati della colonna hanno una cardinalità bassa. Questi sono appositamente progettati per i data warehouse e non è consigliabile utilizzare indici bitmap su tabelle altamente aggiornabili o transazionali.
Gli indici funzionali provengono da Oracle 8i. Qui, una funzione viene utilizzata nella colonna indicizzata. Pertanto, in un indice funzionale, i dati della colonna non vengono ordinati nel modo normale. Ordina i valori delle colonne dopo aver applicato la funzione. Sono molto utili quando la funzione WHERE close della query di selezione viene utilizzata.
Gli indici inversi sono un tipo di indice molto interessante. Supponiamo che una colonna contenga molti dati di stringa univoci come 'cityA', 'cityB', 'cityC' ... ecc. Tutti i valori hanno uno schema. I primi quattro caratteri sono gli stessi e le parti successive sono cambiate. Quindi, quando l'indice chiave REVERSE viene creato su questa colonna, Oracle invertirà la stringa e la ripristinerà in un indice b-tree.
I tipi di indici sopra menzionati sono indici NON CLUSTERED. Ciò significa che i dati indicizzati vengono memorizzati all'esterno della tabella e viene mantenuto un riferimento ordinato alla tabella.
Che cos'è un indice cluster?
Gli indici raggruppati sono un tipo speciale di indici. Memorizza i dati in base al modo di memorizzare fisicamente i dati della tabella. Quindi, non ci possono essere molti indici cluster per una tabella. Una tabella può avere solo un indice cluster.
Qual è la differenza tra indici raggruppati e non raggruppati? 1. La tabella può avere solo un indice cluster, ma possono essere presenti fino a 249 indici non cluster in una tabella. 2. L'indice cluster viene creato automaticamente quando viene creata una chiave primaria, ma viene creato un indice non cluster quando viene creata una chiave univoca. 3. L'ordine logico dell'indice cluster corrisponde all'ordine fisico dei dati della tabella, ma negli indici non in cluster, non. |