Indeksi su bitno potrebni za učinkovito provođenje ograničenja integriteta i učinkovitu obradu upita i transakcija. One se stvaraju na tablicama i prikazima. Na primjer, indeksi korišteni u knjigama koji korisniku olakšavaju brz pristup sadržaju knjige, slično imamo i indekse na SQL-u.
Tablica usporedbe
Osnova za usporedbu | Klasterirani indeks | Neklasterirani indeks |
---|---|---|
Osnovni, temeljni | Određuje redoslijed pohrane redaka u tablici kao cjelini. | Određuje redoslijed pohranjivanja redaka u tablici pomoću zasebne fizičke strukture. |
Broj indeksa dopuštenih po tablici | Samo jedan klasterirani indeks | Više ne-klasteriranih indeksa |
Pristup podacima | Brže | Usporeno u odnosu na klasterirani indeks |
Dodatni prostor na disku | Nije potrebno | Potrebno je odvojeno pohranjivanje indeksa |
Definicija indeksa klastera
Klasterirani indeks u osnovi se koristi za naručivanje redaka u tablici. Tablica može imati samo jedan klasterirani indeks jer se redovi u tablici mogu sortirati samo u jednom redoslijedu, ali postoje načini za stvaranje složenog klaster indeksa . Stupci su uključeni u klasterirani indeks, a logički ili indeksirani redoslijed ključnih vrijednosti isti je kao i fizički spremljeni redoslijed odgovarajućih redaka. Ako za podatke nema klasteriranog indeksa, on se pohranjuje u hrpi .
Pristup zapisima u hrpi je vrlo dugotrajan, pri čemu se svaki unos u tablici skenira za pristup željenim podacima. U skeniranju tablica nije bilo načina da saznamo ima li više dostupnih podudaranja ili ne. Dakle, ova metoda je bila vrlo neučinkovita.
Dok koristite klasterirani indeks, pristup podacima je brži i sustavniji gdje je tablica organizirana nekim redoslijedom. Definira se u polju narudžbe tablice. Koristi se ključ za pretraživanje koji određuje sekvencijalni raspored datoteke ili tablice. Klasterirani indeks automatski se kreira kada je primarni ključ definiran za tablicu.
Definicija indeksa bez klastera
Indeks bez klasteriranja pohranjuje podatke na jednom mjestu, a indekse na drugom mjestu, a indeks ima pokazivače na mjesto pohrane podataka. Tablica može imati više ne-klasteriranih indeksa jer je indeks u indeksu koji nije klasteriran pohranjen na drugom mjestu. Na primjer, knjiga može imati više od jednog indeksa, jedan na početku koji prikazuje sadržaj knjige jedinice knjige i još jedan indeks na kraju koji prikazuje indeks izraza abecednim redom.
Definira se u ne-redoslijednom polju tablice. Ne-klasterirani indeks može poboljšati izvedbu upita koji koriste ključeve osim primarnih ključeva. Indeks koji nije klasteriran automatski se stvara kada je jedinstveni ključ definiran za tablicu.
Ključne razlike između klasteriranog i ne-klasteriranog indeksa
- Broj klasteriranog indeksa koji tablica može imati je samo jedan. Dok tablica može imati više ne-klasteriranih indeksa.
- Klasterirani indeks je brži od ne-klasteriranog indeksa jer se ne-klasterirani indeks mora vratiti na osnovnu tablicu. Naprotiv, to nije slučaj u klasteriranom indeksu.
- U indeksu bez klastera indeks se pohranjuje na zasebnoj lokaciji koja zahtijeva dodatni prostor za pohranu. Nasuprot tome, klasterirani indeks pohranjuje podatke osnovne tablice u isti fizički poredak kao logički poredak indeksa, tako da ne zahtijeva dodatni prostor za pohranu.
Zaključak
Clustered index je način pohranjivanja podataka u redove tablice u određenom redoslijedu. Tako da kada se pretražuju željeni podaci, utječe se jedini odgovarajući redak koji sadrži podatke i prikazuje se kao izlaz. S druge strane, ne-klasterirani indeks nalazi se u fizički odvojenoj strukturi koja upućuje na bazne podatke kada se pretražuje. Ne-klasterirana struktura može imati drugačiji redoslijed sortiranja.