"Indice database" si riferisce a un tipo speciale di struttura dati che velocizza il recupero di record da una tabella di database. Gli indici del database assicurano che tu possa individuare e accedere ai dati in una tabella di database in modo efficiente senza dover cercare ogni riga ogni volta che viene elaborata una query di database.
Un indice di database può essere paragonato all'indice di un libro. Gli indici nei database ti indirizzano al record che stai cercando nel database, proprio come la pagina dell'indice di un libro ti indirizza all'argomento o al capitolo desiderato.
Tuttavia, sebbene gli indici del database siano essenziali per la ricerca e l'accesso ai dati rapidi ed efficienti, occupano scritture e spazio di memoria aggiuntivi.
Che cos'è un indice?
Gli indici di database sono tabelle di ricerca speciali costituite da due colonne. La prima colonna è la chiave di ricerca e la seconda è il puntatore ai dati. Le chiavi sono i valori che si desidera cercare e recuperare dalla tabella del database e il puntatore o il riferimento memorizza l'indirizzo del blocco del disco nel database per quella chiave di ricerca specifica. I campi chiave sono ordinati in modo da accelerare l'operazione di recupero dei dati per tutte le tue query.
Perché utilizzare l'indicizzazione del database?
Ti mostrerò gli indici del database in modo semplificato qui. Supponiamo di avere una tabella di database degli otto dipendenti che lavorano in un'azienda e di voler cercare le informazioni per l'ultima voce della tabella. Ora, per trovare la voce precedente, devi cercare in ogni riga del database.
Tuttavia, supponiamo di aver ordinato alfabeticamente la tabella in base al nome dei dipendenti. Quindi, qui le chiavi di indicizzazione si basano sulla "colonna del nome". In tal caso, se cerchi l'ultima voce, "Zack", puoi saltare al centro della tabella e decidere se la nostra voce viene prima o dopo la colonna.
Come sai, verrà dopo la riga centrale e puoi di nuovo dividere le righe dopo la riga centrale a metà e fare un confronto simile. In questo modo, non è necessario attraversare ogni riga per trovare l'ultima voce.
Se l'azienda avesse 1.000.000 di dipendenti e l'ultima voce fosse "Zack", dovresti cercare 50.000 righe per trovare il suo nome. Mentre, con l'indicizzazione alfabetica, puoi farlo in pochi passaggi. Ora puoi immaginare quanto più veloce possa diventare la ricerca e l'accesso ai dati con l'indicizzazione del database.
Relazionato: 13 comandi SQL più importanti che ogni programmatore dovrebbe conoscere
Diversi metodi di organizzazione dei file per gli indici di database
L'indicizzazione dipende in larga misura dal meccanismo di organizzazione dei file utilizzato. Di solito, esistono due tipi di metodi di organizzazione dei file utilizzati nell'indicizzazione del database per archiviare i dati. Sono discussi di seguito:
1. File indice ordinato: Questo è il metodo tradizionale di memorizzazione dei dati dell'indice. In questo metodo, i valori chiave vengono ordinati in un ordine particolare. I dati in un file indice ordinato possono essere archiviati in due modi.
- Indice scarso: In questo tipo di indicizzazione, viene creata una voce di indice per ogni record.
- Indice denso: Nell'indicizzazione densa, viene creata una voce di indice per alcuni record. Per trovare un record in questo metodo, devi prima trovare il valore della chiave di ricerca più significativo dalle voci dell'indice che sono inferiori o uguali al valore della chiave di ricerca che stai cercando.
2. Organizzazione del file hash: In questo metodo di organizzazione dei file, una funzione hash determina la posizione o il blocco del disco in cui è archiviato un record.
Tipi di indicizzazione del database
Esistono generalmente tre metodi di indicizzazione del database. Sono:
- Indicizzazione cluster
- Indicizzazione non cluster
- Indicizzazione multilivello
1. Indicizzazione cluster
Nell'indicizzazione cluster, un singolo file può memorizzare più di due record di dati. Il sistema mantiene i dati effettivi nell'indicizzazione cluster anziché nei puntatori. La ricerca è conveniente con l'indicizzazione in cluster poiché archivia tutti i dati correlati nella stessa posizione.
Un indice di cluster utilizza file di dati ordinati per definirsi. Inoltre, l'unione di più tabelle di database è molto comune con questo tipo di indicizzazione.
È anche possibile creare un indice basato su colonne non primarie che non sono univoche per ogni chiave. In tali occasioni, combina più colonne per formare i valori chiave univoci per gli indici cluster.
Quindi, in breve, gli indici di clustering sono i punti in cui vengono raggruppati tipi di dati simili e vengono creati gli indici per essi.
Esempio: Supponiamo che ci sia un'azienda che ha oltre 1.000 dipendenti in 10 diversi dipartimenti. In questo caso, l'azienda dovrebbe creare l'indicizzazione di cluster nel proprio DBMS per indicizzare i dipendenti che lavorano nello stesso reparto.
Ogni cluster con dipendenti che lavorano nello stesso dipartimento sarà definito come un singolo cluster e i puntatori dati negli indici faranno riferimento al cluster come entità intera.
Relazionato: Cosa sono le chiavi esterne nei database SQL?
2. Indicizzazione non cluster
L'indicizzazione non cluster si riferisce a un tipo di indicizzazione in cui l'ordine delle righe dell'indice non è lo stesso di come i dati originali sono archiviati fisicamente. Un indice non cluster punta invece all'archiviazione dei dati nel database.
Esempio: L'indicizzazione non in cluster è simile a un libro con una pagina dei contenuti ordinata. Qui, il puntatore ai dati o il riferimento è la pagina del contenuto ordinato che è in ordine alfabetico, ei dati effettivi sono le informazioni sulle pagine del libro. La pagina dei contenuti non memorizza le informazioni sulle pagine del libro nel loro ordine.
3. Indicizzazione multilivello
L'indicizzazione multilivello viene utilizzata quando il numero di indici è molto elevato e non è possibile memorizzare l'indice primario nella memoria principale. Come forse saprai, gli indici dei database comprendono chiavi di ricerca e puntatori ai dati. Quando la dimensione del database aumenta, cresce anche il numero di indici.
Tuttavia, per garantire un'operazione di ricerca rapida, è necessario conservare in memoria i record dell'indice. Se viene utilizzato un indice a livello singolo quando il numero di indice è elevato, è improbabile che tale indice venga archiviato in memoria a causa delle sue dimensioni e degli accessi multipli.
È qui che entra in gioco l'indicizzazione multilivello. Questa tecnica suddivide l'indice a livello singolo in più blocchi più piccoli. Dopo la rottura, il blocco di livello esterno diventa così piccolo che può essere facilmente memorizzato nella memoria principale.
Relazionato: Come connettersi a un database MySQL con Java
Che cos'è la frammentazione dell'indice SQL?
Quando un ordine delle pagine dell'indice non corrisponde all'ordine fisico nel file di dati, provoca la frammentazione dell'indice SQL. Inizialmente, tutti gli indici SQL risiedono senza frammentazione, ma se si utilizza ripetutamente il database (Inserisci/Elimina/Modifica dati) può causare la frammentazione.
Oltre alla frammentazione del database, il tuo database può anche affrontare altri problemi vitali come la corruzione del database. Può portare alla perdita di dati e a un sito Web danneggiato. Se stai facendo affari con il tuo sito web, può essere un colpo fatale per te.
Recovery Toolbox for SQL Server aiuta a riparare i file MDF corrotti di un MS SQL Server per tutte le versioni.
Leggi Avanti
- Programmazione
- SQL
- Analisi dei dati
- Banca dati
Zadhid Powell è un ingegnere informatico che ha rinunciato alla programmazione per iniziare a scrivere! Accanto, è un marketer digitale, appassionato di tecnologia, esperto di SaaS, lettore e appassionato seguace delle tendenze del software. Spesso potresti trovarlo a ballare nei club del centro con la sua chitarra o a ispezionare le immersioni sui fondali oceanici.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.