Che cos’è un indice?
Un indice è una chiave costruita da una o più colonne nel database che accelera il recupero delle righe dalla tabella o dalla vista. Questa chiave aiuta un database come Oracle, SQL Server, MySQL, ecc. A trovare rapidamente la riga associata ai valori della chiave.
Due tipi di indici sono:
- Indice cluster
- Indice non cluster
In questo tutorial , imparerai:
- Cos’è un indice?
- Che cos’è un indice cluster?
- Che cos’è l’indice non cluster?
- Caratteristica dell’indice cluster
- Caratteristiche degli indici non cluster
- Un esempio di indice cluster
- Un esempio di un indice non indice cluster
- Differenze tra indice cluster e indice non cluster
- Vantaggi dell’indice cluster
- Vantaggi dell’indice non cluster
- Svantaggi del clustered Indice
- Svantaggi dell’indice non cluster
Cos’è un indice cluster?
L’indice cluster è un tipo di indice che ordina le righe di dati nella tabella sui valori chiave. Nel database è presente un solo indice cluster per tabella.
Un indice cluster definisce l’ordine in cui i dati vengono memorizzati nella tabella che può essere ordinata in un solo modo. Quindi, può esserci un solo indice cluster per ogni tabella. In un RDBMS, di solito, la chiave primaria consente di creare un indice cluster basato su quella specifica colonna.
Che cos’è l’indice non cluster?
Un indice non cluster memorizza i dati in una posizione e gli indici in un’altra posizione. L’indice contiene puntatori alla posizione di quei dati. Una singola tabella può avere molti indici non cluster poiché un indice nell’indice non cluster è archiviato in posizioni diverse.
Ad esempio, un libro può avere più di un indice, uno all’inizio che mostra il contenuto di un’unità libro saggia mentre il secondo indice mostra l’indice dei termini in ordine alfabetico.
Un indice non cluster è definito nel campo non ordinamento della tabella. Questo tipo di metodo di indicizzazione consente di migliorare le prestazioni delle query che utilizzano chiavi non assegnate come chiave primaria. Un indice non cluster consente di aggiungere una chiave univoca per una tabella.
DIFFERENZA CHIAVE
- L’indice del cluster è un tipo di indice che ordina le righe di dati nella tabella in base ai valori chiave, mentre l’indice non cluster memorizza i dati in una posizione e indici in un’altra posizione.
- L’indice cluster memorizza le pagine di dati nei nodi foglia dell’indice mentre il metodo dell’indice non cluster non archivia mai le pagine di dati nei nodi foglia dell’indice.
- L’indice del cluster non richiede spazio su disco aggiuntivo mentre l’indice non cluster richiede spazio su disco aggiuntivo.
- L’indice cluster offre un accesso più rapido ai dati, d’altra parte, l’indice non cluster è più lento.
Caratteristica dell’indice cluster
- Archiviazione dati predefinita e ordinata
- Usa solo una o più colonne per un indice
- Aiuta di archiviare i dati e l’indice insieme
- Frammentazione
- Operazioni
- Scansione dell’indice e ricerca dell’indice in cluster
- Ricerca chiave
Caratteristiche degli indici non cluster
- Memorizza solo valori chiave
- Puntatori a righe di indice heap / cluster
- Consente dati secondari accedere
- Bridge to the data
- Operazioni di Index Scan e Index Seek
- Puoi creare un indice cluster per una tabella o vista
- Ogni riga dell’indice nell’indice non cluster memorizza il valore della chiave non cluster e un localizzatore di riga
Un esempio di indice cluster
Nell’esempio seguente, SalesOrderDetailID è l’indice cluster. Query di esempio per recuperare i dati
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Un esempio di indice non cluster
Nell’esempio seguente, viene creato un indice non cluster su OrderQty e ProductID come segue
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
La seguente query verrà recuperata più velocemente rispetto all’indice cluster.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Differenze tra cluster Indice e Indice non raggruppato
Parametri | Clustered | Non cluster |
---|---|---|
Usa per | Puoi ordinare i record e archiviare fisicamente in memoria l’indice cluster secondo l’ordine . | Un indice non cluster consente di creare un ordine logico per le righe di dati e utilizza i puntatori per i file di dati fisici. |
Metodo di memorizzazione | Consente di memorizzare le pagine di dati nei nodi foglia dell’indice. | Questo metodo di indicizzazione non memorizza mai le pagine di dati nei nodi foglia dell’indice. |
Dimensione | La dimensione dell’indice cluster è abbastanza grande. | La dimensione dell’indice non cluster è piccola rispetto all’indice cluster. |
Accesso ai dati | Più veloce | Più lento rispetto all’indice cluster |
Spazio su disco aggiuntivo | Non richiesto | Necessario per memorizzare l’indice separatamente |
Tipo di chiave | Per impostazione predefinita, le chiavi primarie della tabella sono un indice cluster. | Può essere utilizzato con vincoli univoci sulla tabella che funge da chiave composta. |
Funzionalità principale | Un indice cluster può migliorare le prestazioni del recupero dei dati. | Dovrebbe essere creato sulle colonne utilizzate nei join. |
Vantaggi dell’indice cluster
I pro / benefici dell’indice cluster sono:
- Gli indici raggruppati sono un’opzione ideale per l’intervallo o il raggruppamento con query di tipo max, min, conteggio
- In questo tipo di indice, una ricerca può andare direttamente a un punto specifico nei dati in modo che tu può continuare a leggere in sequenza da lì.
- Il metodo dell’indice cluster utilizza il meccanismo di posizione per individuare la voce di indice all’inizio di un intervallo.
- È un metodo efficace per le ricerche per intervallo quando viene richiesto un intervallo di valori della chiave di ricerca.
- Ti aiuta a ridurre al minimo i trasferimenti di pagina e a massimizzare gli accessi alla cache.
Vantaggi dell’indice non cluster
I vantaggi dell’utilizzo dell’indice non cluster sono:
- Un indice non cluster ti aiuta per recuperare rapidamente i dati dalla tabella del database.
- Aiuta a evitare i costi generali associati all’indice cluster
- Una tabella può avere più indici non cluster in RDBMS. Quindi, può essere utilizzato per creare più di un indice.
Svantaggi dell’indice cluster
Qui ci sono i contro / svantaggi dell’utilizzo dell’indice cluster:
- Molti inserti in non sequenziali ordine
- Un indice cluster crea molte divisioni di pagina costanti, che includono pagine di dati e pagine di indice.
- Lavoro aggiuntivo per SQL per inserimenti, aggiornamenti ed eliminazioni.
- Un indice cluster impiega più tempo per aggiornare i record quando i campi nell’indice cluster vengono modificati.
- I nodi foglia contengono principalmente pagine di dati nell’indice cluster.
Svantaggi dell’indice non cluster
Qui ci sono i contro / svantaggi dell’utilizzo dell’indice non cluster: