
Indeksai būtini norint veiksmingai įgyvendinti sąžiningumo apribojimus ir veiksmingai apdoroti užklausas ir sandorius. Tai sukurta lentelėse ir vaizduose. Pavyzdžiui, knygose naudojami indeksai, padedantys vartotojui greitai pasiekti knygos turinį, taip pat turime indeksus SQL.
Palyginimo diagrama
Palyginimo pagrindas | Klasterio indeksas | Ne grupuotas indeksas |
---|---|---|
Pagrindinis | Nustato lentelės eilių saugojimo tvarką. | Nustato lentelės eilių saugojimo tvarką atskiros fizinės struktūros pagalba. |
Leistinų indeksų skaičius lentelėje | Tik vienas suskirstytas indeksas | Keli ne grupuojami indeksai |
Duomenų prieiga | Greičiau | Lėtesnis, palyginti su grupuotu indeksu |
Papildoma vietos diske | Nereikia | Reikalaujama, kad indeksai būtų saugomi atskirai |
Klasterio indekso apibrėžimas
Klasterio indeksas iš esmės naudojamas eilėms eilėje užsisakyti. Lentelė gali turėti tik vieną grupinį indeksą, nes lentelės eilutės gali būti rūšiuojamos tik viena tvarka, tačiau yra būdų sukurti sudėtinį grupinį indeksą . Stulpeliai yra įtraukti į grupuotąjį indeksą, o loginių arba indeksuotų pagrindinių reikšmių tvarka yra tokia pati, kaip ir fiziškai saugoma atitinkamų eilučių tvarka. Kai nėra duomenų grupių, jis yra saugomas krūvoje .
Įrašas, pasiekiantis krūvą, yra labai daug laiko, kur kiekvienas lentelės įrašas yra nuskaitytas norint pasiekti norimus duomenis. Lentelės nuskaitymo metu nebuvo galimybės sužinoti, ar yra daugiau atitikmenų. Taigi šis metodas buvo labai neveiksmingas.
Naudojant grupinį indeksą, duomenų prieinamumas yra greitesnis ir sistemingesnis, kai lentelė yra organizuojama tam tikra tvarka. Jis apibrėžiamas lentelės užsakymo lauke. Naudojamas jo paieškos raktas nurodo nuoseklų failo ar lentelės išdėstymą. Klasterinis indeksas automatiškai sukuriamas, kai stalui nustatytas pirminis raktas .
Ne grupinio indekso apibrėžimas
Ne grupuotas indeksas saugo duomenis vienoje vietoje ir rodiklius kitoje vietoje, o indeksas turėtų nuorodas į duomenų saugojimo vietą. Lentelėje gali būti keli nesuskirstyti indeksai, nes indeksas, sudarytas ne pagal grupes, yra saugomas kitoje vietoje. Pavyzdžiui, knygoje gali būti daugiau nei vienas indeksas, vienas pradžioje, kuriame parodomas išmintingas knygų vieneto turinys ir kitas indeksas pabaigoje, rodantis terminų indeksą abėcėlės tvarka.
Jis apibrėžiamas lentelės neužsakymo lauke. Ne grupuotas indeksas gali pagerinti užklausų, kuriose naudojami kiti nei pagrindiniai raktai, našumą. Ne grupinis indeksas automatiškai sukuriamas, kai lentelei yra nustatytas unikalus raktas .
Pagrindiniai skirtumai tarp klasterio ir ne grupinio indekso
- Klasterio indekso, kurį gali turėti lentelė, skaičius yra tik vienas. Kadangi lentelėje gali būti keli nesuskirstyti indeksai.
- Klasterinis indeksas yra greitesnis nei nesuskirstytas indeksas, nes ne grupuotas indeksas turi grįžti į bazinę lentelę. Priešingai, tai nėra klasterio indekso atveju.
- Ne grupuotame rodyklėje indeksas saugomas atskiroje vietoje, kur reikia papildomos atminties vietos. Priešingai, suskirstytas indeksas bazinės lentelės duomenis saugo ta pačia fizine tvarka kaip ir indekso loginė tvarka, todėl nereikia papildomos atminties vietos.
Išvada
Klasterio indeksas - tai būdas saugoti duomenis lentelės eilutėse tam tikra tvarka. Taigi, kai ieškoma pageidaujamų duomenų, bus paveikta vienintelė atitinkama eilutė, kurioje yra duomenys, ir pateikiamas kaip išvestis. Kita vertus, nesuskirstytas indeksas yra fiziškai atskiroje struktūroje, nurodančioje bazinius duomenis ieškant. Nesuskirstyta struktūra gali turėti skirtingą rūšiavimo tvarką.