Što je indeks?
Indeks je ključ izgrađen iz jednog ili više stupaca u bazi podataka koji ubrzava dohvaćanje redaka iz tablice ili pogleda. Ovaj ključ pomaže bazi podataka kao što su Oracle, SQL Server, MySQL itd. Da brzo pronađu redak povezan s vrijednostima ključeva.
Dvije su vrste indeksa:
- Grupirani indeks
- Neklastirani indeks
U ovom vodiču naučit ćete:
- Što je indeks?
- Što je klasterizirani indeks?
- Što je neklasterizirani indeks?
- Karakteristično za klasterizirani indeks
- Karakteristike neklasteriziranih indeksa
- Primjer klasteriziranog indeksa
- Primjer neklasteriziranog indeksa
- Razlike između klasteriziranog indeksa i neklasteriziranog indeksa
- Prednosti klasteriziranog indeksa
- Prednosti neklasteriziranog indeksa
- Mane klasteriziranog indeksa
- Nedostaci neklasteriziranog indeksa
Što je klasterizirani indeks?
Indeks klastera vrsta je indeksa koji sortira retke podataka u tablici prema njihovim ključnim vrijednostima. U bazi podataka postoji samo jedan klasterizirani indeks po tablici.
Klasterizirani indeks definira redoslijed pohrane podataka u tablici koji se mogu sortirati samo na jedan način. Dakle, za svaku tablicu može postojati samo jedan klasterizirani indeks. U RDBMS-u obično primarni ključ omogućuje stvaranje klasteriziranog indeksa na temelju tog određenog stupca.
Što je neklasterizirani indeks?
Neklasterizirani indeks pohranjuje podatke na jednom mjestu, a indekse na drugom mjestu. Indeks sadrži pokazivače na mjesto tih podataka. Jedna tablica može imati mnogo neklasteriziranih indeksa jer se indeks u neklasteriziranom indeksu pohranjuje na različitim mjestima.
Na primjer, knjiga može imati više indeksa, jedan na početku koji prikazuje sadržaj jedinice knjige, dok drugi indeks prikazuje indeks pojmova abecednim redom.
Indeks neklasterizacije definiran je u polju za neuređivanje tablice. Ova vrsta metode indeksiranja pomaže vam poboljšati izvedbu upita koji koriste ključeve koji nisu dodijeljeni kao primarni ključ. Neklasterizirani indeks omogućuje vam dodavanje jedinstvenog ključa za tablicu.
KLJUČNA RAZLIKA
- Indeks klastera vrsta je indeksa koji sortira retke podataka u tablici prema njihovim ključnim vrijednostima, dok neklasterizirani indeks podatke pohranjuje na jednom mjestu, a indekse na drugom mjestu.
- Klasterizirani indeks pohranjuje stranice podataka u čvorove listova indeksa, dok neklasterizirana metoda indeksa nikada ne pohranjuje stranice podataka u čvorove listova indeksa.
- Indeks klastera ne zahtijeva dodatni prostor na disku, dok neklasterirani indeks zahtijeva dodatni prostor na disku.
- Klaster indeks nudi brži pristup podacima, s druge strane, neklasterizirani indeks je sporiji.
Karakteristično za klasterizirani indeks
- Zadana i sortirana pohrana podataka
- Za indeks koristite samo jedan ili više stupaca
- Pomaže vam u pohrani podataka i indeksiranju zajedno
- Fragmentacija
- Operacije
- Skupno skeniranje indeksa i traženje indeksa
- Traženje ključa
Karakteristike neklasteriziranih indeksa
- Pohranite samo vrijednosti ključeva
- Pokazivači na redak hrpe / klasterizirani indeks
- Omogućuje sekundarni pristup podacima
- Most do podataka
- Operacije indeksnog skeniranja i traženja indeksa
- Možete stvoriti nesvrstani indeks za tablicu ili prikaz
- Svaki redak indeksa u neklasteriranom indeksu pohranjuje neklasteriranu vrijednost ključa i lokator redaka
Primjer klasteriziranog indeksa
U primjeru u nastavku SalesOrderDetailID je klasterizirani indeks. Uzorak upita za preuzimanje podataka
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Primjer neklasteriziranog indeksa
U donjem primjeru stvara se neklasterizirani indeks na OrderQty i ProductID kako slijedi
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
Sljedeći će se upit dohvatiti brže u usporedbi s klasteriziranim indeksom.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Razlike između klasteriziranog indeksa i neklasteriziranog indeksa
Parametri | Skupljeno | Negrupirani |
---|---|---|
Koristiti za | Zapise možete sortirati i klasterizirani indeks fizički pohraniti u memoriju prema narudžbi. | Neklasterizirani indeks pomaže vam u stvaranju logičnog poretka za podatkovne retke i koristi pokazivače za fizičke datoteke podataka. |
Način čuvanja | Omogućuje vam pohranjivanje stranica podataka u čvorove listova indeksa. | Ova metoda indeksiranja nikada ne pohranjuje stranice podataka u čvorove listova indeksa. |
Veličina | Veličina klasteriziranog indeksa prilično je velika. | Veličina neklasteriziranog indeksa mala je u usporedbi s klasteriziranim indeksom. |
Pristup podacima | Brže | Sporije u usporedbi s klasteriziranim indeksom |
Dodatni prostor na disku | Nije obavezno | Potrebno za zasebno spremanje indeksa |
Vrsta ključa | Prema zadanim postavkama primarni ključevi tablice klasterizirani su indeks. | Može se koristiti s jedinstvenim ograničenjima na stolu koji djeluje kao složeni ključ. |
Glavna značajka | Klasterizirani indeks može poboljšati izvedbu pretraživanja podataka. | Trebao bi biti stvoren na stupcima koji se koriste u spajanjima. |
Prednosti klasteriziranog indeksa
Pros / blagodati klasteriziranog indeksa su:
- Klasterizirani indeksi idealna su opcija za raspon ili grupu s upitima tipa max, min, count
- U ovoj vrsti indeksa, pretraživanje može ići ravno do određene točke podataka tako da odatle možete dalje čitati u nizu.
- Klasterizirana metoda indeksa koristi mehanizam lokacije za lociranje unosa indeksa na početku raspona.
- Učinkovita je metoda za pretraživanja raspona kada se traži raspon vrijednosti ključeva pretraživanja.
- Pomaže vam da smanjite prijenose stranica i povećate pogotke predmemorije.
Prednosti neklasteriziranog indeksa
Pros prednosti neklasteriziranog indeksa su:
- Indeks koji ne klasterizira pomaže vam da brzo dohvatite podatke iz tablice baze podataka.
- Pomaže vam u izbjegavanju općih troškova povezanih s klasteriziranim indeksom
- Tablica može imati više neklasteriziranih indeksa u RDBMS-u. Dakle, može se koristiti za stvaranje više od jednog indeksa.
Mane klasteriziranog indeksa
Evo slabosti / nedostataka korištenja klasteriziranog indeksa:
- Mnogo umetaka u neredovnom redoslijedu
- Klasterizirani indeks stvara puno stalnih dijeljenja stranica, što uključuje stranicu podataka kao i stranice indeksa.
- Dodatni posao za SQL za umetke, ažuriranja i brisanja.
- Klasteriziranom indeksu treba više vremena za ažuriranje zapisa kada se promijene polja u klasteriziranom indeksu.
- Čvorovi lista uglavnom sadrže stranice podataka u klasteriziranom indeksu.
Nedostaci neklasteriziranog indeksa
Evo slabosti / nedostataka upotrebe neklasteriziranog indeksa:
- Neklasterizirani indeks pomaže vam u pohrani podataka u logičnom redoslijedu, ali ne dopušta fizičko sortiranje redaka podataka.
- Proces pretraživanja neklasteriziranog indeksa postaje skup.
- Svaki put kad se ključ klasterizacije ažurira, potrebno je odgovarajuće ažuriranje neklasteriziranog indeksa jer pohranjuje ključ klasterizacije.