Grupinis ir neklasterinis indeksas: pagrindiniai skirtumai su pavyzdžiu

Kas yra indeksas?

Indeksas yra raktas, sudarytas iš vieno ar daugiau duomenų bazės stulpelių, kuris pagreitina eilučių paiešką iš lentelės ar rodinio. Šis raktas padeda tokioms duomenų bazėms kaip „Oracle“, „SQL Server“, „MySQL“ ir kt. Greitai rasti eilutę, susietą su pagrindinėmis reikšmėmis.

Yra dviejų tipų indeksai:

  • Grupinis indeksas
  • Neklasterizuotas indeksas

Šioje pamokoje sužinosite:

  • Kas yra indeksas?
  • Kas yra grupuotas indeksas?
  • Kas yra neklasijuotas indeksas?
  • Būdingas susitelkęs indeksas
  • Neklasterizuotų indeksų charakteristikos
  • Grupuoto indekso pavyzdys
  • Neklasterizuoto indekso pavyzdys
  • Skirtumų tarp neklasifikuoto ir neklasifikuoto indekso skirtumai
  • Klasterinio indekso privalumai
  • Neklasterizuoto indekso privalumai
  • Klasterinio indekso trūkumai
  • Neklasterizuoto indekso trūkumai

Kas yra grupuotas indeksas?

Klasterio indeksas yra indekso tipas, kuris rūšiuoja lentelės duomenų eilutes pagal jų pagrindines vertes. Duomenų bazėje lentelėje yra tik vienas grupuotas indeksas.

Grupuotas indeksas nurodo duomenų saugojimo lentelėje tvarką, kurią galima rūšiuoti tik vienu būdu. Taigi kiekvienai lentelei gali būti tik vienas grupuotas indeksas. Paprastai RDBVS pagrindinis raktas leidžia sukurti grupuotą indeksą pagal tą konkretų stulpelį.

Kas yra neklasijuotas indeksas?

Neklasterizuotas indeksas saugo duomenis vienoje vietoje, o indeksus - kitoje vietoje. Indekse yra nuorodos į tų duomenų vietą. Vienoje lentelėje gali būti daug nesugrupuotų indeksų, nes neklasterizuoto indekso indeksas saugomas skirtingose ​​vietose.

Pavyzdžiui, knygoje gali būti daugiau nei viena rodyklė, viena pradžioje rodanti knygos vieneto turinį, o antrasis - terminų rodyklę abėcėlės tvarka.

Ne grupių indeksas yra apibrėžtas lentelės lauke be eilės. Šio tipo indeksavimo metodas padeda pagerinti užklausų, naudojančių raktus, kurie nėra priskirti kaip pagrindiniai, našumą. Neklasterizuotas indeksas leidžia pridėti unikalų lentelės raktą.

PAGRINDINIAI SKIRTUMAI

  • Klasterio indeksas yra indekso rūšis, rūšiuojanti lentelės duomenų eilutes pagal jų pagrindines vertes, o „Neklasterizuotas“ indeksas saugo duomenis vienoje vietoje, o indeksus - kitoje vietoje.
  • Grupuotas indeksas duomenų puslapius saugo indekso lapų mazguose, o neklasifikuoto indekso metodas niekada duomenų puslapių nesaugo indekso lapų mazguose.
  • Klasterio indeksui nereikia papildomos vietos diske, o nesuderinamam indeksui - papildomos vietos diske.
  • Klasterių indeksas suteikia galimybę greičiau pasiekti duomenis, kita vertus, neklasterizuotas indeksas yra lėtesnis.

Būdingas susitelkęs indeksas

  • Numatytoji ir rūšiuojama duomenų saugykla
  • Indeksui naudokite tik vieną ar daugiau nei vieną stulpelį
  • Padeda kartu saugoti duomenis ir indeksuoti
  • Suskaidymas
  • Operacijos
  • Grupinis indeksų nuskaitymas ir indeksų paieška
  • Rakto paieška

Neklasterizuotų indeksų charakteristikos

  • Saugoti tik pagrindines vertes
  • Nurodymai į kaupo / grupių indekso eilutes
  • Leidžia pasiekti antrinius duomenis
  • Susiekite duomenis
  • „Index Scan“ ir „Index Seek“ operacijos
  • Galite sukurti neklasifikuotą lentelės ar rodinio indeksą
  • Kiekvienoje indekso eilutėje, esančioje neklasterizuotame indekse, saugoma nesuderinto rakto reikšmė ir eilutės lokatorius

Grupuoto indekso pavyzdys

Toliau pateiktame pavyzdyje „SalesOrderDetailID“ yra grupuotas indeksas. Užklausos pavyzdys duomenims gauti

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Neklasterizuoto indekso pavyzdys

Žemiau pateiktame pavyzdyje nesusijęs indeksas „OrderQty“ ir „ProductID“ sukuriamas taip

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

Ši užklausa bus gauta greičiau, palyginti su grupuotu indeksu.

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Skirtumų tarp neklasifikuoto ir neklasifikuoto indekso skirtumai

Parametrai Sugrupuota Neklasifikuotas
Naudokite Galite rūšiuoti įrašus ir fiziškai laikyti grupuotą indeksą atmintyje pagal užsakymą. Neklasterizuotas indeksas padeda sukurti loginę duomenų eilučių tvarką ir naudoti fizinių duomenų failų rodykles.
Saugojimo metodas Leidžia saugoti duomenų puslapius indekso lapų mazguose. Šis indeksavimo metodas niekada nesaugo duomenų puslapių indekso lapų mazguose.
Dydis Grupuoto indekso dydis yra gana didelis. Neklasterizuoto indekso dydis yra nedidelis, palyginti su grupiniu indeksu.
Prieiga prie duomenų Greičiau Lėtesnis, palyginti su grupiniu indeksu
Papildoma vieta diske Nereikalaujama Reikalinga indeksą saugoti atskirai
Rakto tipas Pagal numatytuosius nustatymus pirminiai lentelės raktai yra grupuotas indeksas. Jis gali būti naudojamas su unikaliais apribojimais ant stalo, kuris veikia kaip sudėtinis raktas.
Pagrindinis bruožas Grupuotas indeksas gali pagerinti duomenų paiešką. Jis turėtų būti sukurtas stulpeliuose, kurie naudojami sujungiant.

Klasterinio indekso privalumai

Grupuoto indekso privalumai / privalumai yra šie:

  • Grupiniai indeksai yra idealus pasirinkimas diapazonui ar grupei pagal maks., Min., Skaičiaus tipo užklausas
  • Šio tipo rodyklėse paieška gali būti nukreipta tiesiai į konkretų duomenų tašką, kad galėtumėte toliau skaityti nuosekliai.
  • Grupuotų indeksų metodas naudoja vietos nustatymo mechanizmą, kad surastų indekso įrašą diapazono pradžioje.
  • Tai yra efektyvus metodas ieškant diapazono, kai prašoma paieškos raktų verčių diapazono.
  • Padeda sumažinti puslapių perkėlimą ir padidinti talpyklos spartą.

Neklasterizuoto indekso privalumai

Neklasterizuoto indekso naudojimo privalumai yra šie:

  • Neklasterizuotas indeksas padeda greitai nuskaityti duomenis iš duomenų bazės lentelės.
  • Padeda išvengti pridėtinių išlaidų, susijusių su grupuotu indeksu
  • Lentelėje RDBMS gali būti keli nesugrupuoti indeksai. Taigi, jis gali būti naudojamas kuriant daugiau nei vieną indeksą.

Klasterinio indekso trūkumai

Čia yra grupuotų indeksų naudojimo trūkumai / trūkumai:

  • Daugybė intarpų ne nuoseklia tvarka
  • Sujungtas indeksas sukuria daug pastovių puslapių padalijimų, į kuriuos įeina duomenų puslapis ir rodyklės puslapiai.
  • Papildomas SQL darbas, skirtas įdėklams, naujiniams ir ištrynimams.
  • Grupuotam indeksui reikia daugiau laiko atnaujinti įrašus, kai pakeičiami grupuoto indekso laukai.
  • Lapų mazguose yra duomenų puslapiai grupuotame rodyklėje.

Neklasterizuoto indekso trūkumai

Čia yra trūkumų / trūkumų, susijusių su neklasterizuoto indekso naudojimu:

  • Neklasterizuotas indeksas padeda saugoti duomenis logine tvarka, tačiau neleidžia fiziškai rūšiuoti duomenų eilučių.
  • Neklasifikuoto indekso paieškos procesas tampa brangus.
  • Kiekvieną kartą, kai grupavimo raktas yra atnaujinamas, reikalingas atitinkamas ne grupuotų indeksų atnaujinimas, nes jame saugomas sankaupos raktas.

Įdomios straipsniai...