logo

Indeksavimas duomenų bazėse – 1 rinkinys

Indeksavimas pagerina duomenų bazės našumą sumažindamas apsilankymų diske skaičių, reikalingą užklausai įvykdyti. Tai duomenų struktūros metodas, naudojamas norint surasti ir greitai pasiekti duomenis duomenų bazėse. Indeksams generuoti naudojami keli duomenų bazės laukai. Pagrindinis lentelės raktas arba kandidato raktas dubliuojamas pirmajame stulpelyje, kuris yra paieškos raktas. Siekiant pagreitinti duomenų gavimą, reikšmės taip pat laikomos surūšiuota tvarka. Reikia pabrėžti, kad duomenų rūšiuoti nereikia. Antrasis stulpelis yra duomenų nuoroda arba rodyklė, kurioje yra rodyklių rinkinys, turintis disko bloko adresą, kuriame galima rasti tą konkrečią rakto reikšmę.

Indekso struktūra duomenų bazėje

Indeksavimo atributai

  • Prieigos tipai: Tai reiškia prieigos tipą, pvz., verte pagrįstą paiešką, diapazono prieigą ir kt.
  • Prieigos laikas: Tai reiškia laiką, kurio reikia tam tikram duomenų elementui arba elementų rinkiniui surasti.
  • Įdėjimo laikas: Tai reiškia laiką, per kurį reikia rasti tinkamą vietą ir įterpti naujus duomenis.
  • Ištrynimo laikas: Laikas, reikalingas elementui rasti ir jį ištrinti bei indekso struktūrai atnaujinti.
  • Viršutinė erdvė: Tai reiškia papildomą vietą, reikalingą indeksui.

Indekso struktūra duomenų bazėje



rekha indėnė

Apskritai yra dviejų tipų failų organizavimo mechanizmai, kuriems taikomi indeksavimo metodai duomenims saugoti:

Nuoseklus failų organizavimas arba sutvarkytas indekso failas

Šiuo atveju indeksai yra pagrįsti surūšiuota verčių tvarka. Paprastai tai yra greiti ir labiau tradiciniai laikymo mechanizmai. Šios sutvarkytų arba nuoseklių failų organizacijos gali saugoti duomenis tankiu arba retais formatais.

  • Tankus indeksas
    • Kiekvienai paieškos rakto vertei duomenų faile yra indekso įrašas.
    • Šiame įraše yra paieškos raktas ir nuoroda į pirmąjį duomenų įrašą su ta paieškos rakto reikšme.

Tankus indeksas

Madhubala
  • Retas indeksas
    • Rodyklės įrašas rodomas tik keletui duomenų failo elementų. Kiekvienas elementas nurodo bloką, kaip parodyta.
    • Norėdami rasti įrašą, randame indekso įrašą, kurio didžiausia paieškos rakto reikšmė yra mažesnė arba lygi ieškomai paieškos rakto reikšmei.
    • Pradedame nuo to įrašo, kurį nurodo indekso įrašas, ir tęsiame kartu su failo rodyklėmis (ty nuosekliai), kol rasime norimą įrašą.
    • Reikalingų prieigų skaičius = log₂(n)+1, (čia n = indekso failo gautų blokų skaičius)

Retas indeksas

Maišos failų organizavimas

Indeksai yra pagrįsti vertėmis, tolygiai paskirstytomis įvairiuose segmentuose. Grupes, kurioms priskiriama reikšmė, nustato funkcija, vadinama maišos funkcija. Pirmiausia yra trys indeksavimo būdai:

  • Klasterinis indeksavimas : Kai tame pačiame faile saugomi daugiau nei du įrašai, tokio tipo saugojimas vadinamas klasterio indeksavimu. Naudodami klasterinį indeksavimą galime sumažinti priežasties paieškos kainą, nes vienoje vietoje yra saugomi keli su tuo pačiu dalyku susiję įrašai, taip pat suteikiamas dažnas daugiau nei dviejų lentelių (įrašų) sujungimas.
    Klasterizacijos indeksas yra apibrėžtas užsakytame duomenų faile. Duomenų failas užsakomas ne rakto lauke. Kai kuriais atvejais indeksas sukuriamas ne pirminio rakto stulpeliuose, kurie kiekvienam įrašui gali būti unikalūs. Tokiais atvejais, norėdami greičiau identifikuoti įrašus, sugrupuosime du ar daugiau stulpelių, kad gautume unikalias reikšmes ir sukurtume iš jų indeksą. Šis metodas yra žinomas kaip klasterizacijos indeksas. Iš esmės įrašai su panašiomis savybėmis yra sugrupuojami ir sudaromi šių grupių indeksai.
    Pavyzdžiui, kiekvieną semestrą studijuojantys studentai yra sugrupuoti. Pirmojo semestro studentai, antrojo semestro studentai, trečiojo semestro studentai ir pan.

Klasterinis indeksavimas

  • Pirminis indeksavimas: Tai yra grupinio indeksavimo tipas, kai duomenys rūšiuojami pagal paieškos raktą, o pirminis duomenų bazės lentelės raktas naudojamas indeksui sukurti. Tai numatytasis indeksavimo formatas, kai jis skatinamas nuoseklus failų organizavimas . Kadangi pirminiai raktai yra unikalūs ir saugomi surūšiuotu būdu, paieškos operacija yra gana efektyvi.
  • Nesugrupuotas arba antrinis indeksavimas : Nesugrupuotas indeksas tiesiog nurodo, kur yra duomenys, t. y. pateikia virtualių nuorodų arba nuorodų į vietą, kurioje faktiškai saugomi duomenys, sąrašą. Duomenys fiziškai nesaugomi indekso tvarka. Vietoj to, duomenys pateikiami lapų mazguose. Dėl pvz. knygos turinio puslapį. Kiekvienas įrašas suteikia mums puslapio numerį arba saugomos informacijos vietą. Faktiniai duomenys čia (informacija kiekviename knygos puslapyje) nėra sutvarkyti, bet mes turime užsakytą nuorodą (turinio puslapis), kur iš tikrųjų yra duomenų taškai. Negrupuotame indekse galime turėti tik tankų rūšiavimą, nes retas rikiavimas neįmanomas, nes duomenys nėra fiziškai atitinkamai sutvarkyti.
    Tam reikia daugiau laiko, palyginti su sugrupuotu indeksu, nes reikia atlikti tam tikrą papildomą darbą, kad būtų galima išgauti duomenis toliau sekant žymeklį. Klasterinio indekso atveju duomenys yra tiesiai prieš indeksą.
Ne grupinis indeksavimas

Ne grupinis indeksavimas

dvejetainė paieška java
  • Kelių lygių indeksavimas: Didėjant duomenų bazės dydžiui, auga ir indeksai. Kadangi indeksas saugomas pagrindinėje atmintyje, vieno lygio indeksas gali tapti per didelis, kad jį būtų galima saugoti su keliomis prieigomis prie disko. Daugiapakopis indeksavimas išskiria pagrindinį bloką į įvairius mažesnius blokus, kad tą patį būtų galima saugoti viename bloke. Išoriniai blokai yra padalinti į vidinius blokus, kurie savo ruožtu yra nukreipti į duomenų blokus. Tai gali būti lengvai saugoma pagrindinėje atmintyje su mažiau papildomų išlaidų.

Daugiapakopis indeksavimas

Indeksavimo privalumai

  • Pagerintas užklausos našumas: Indeksavimas leidžia greičiau gauti duomenis iš duomenų bazės. Duomenų bazė gali greitai aptikti eilutes, atitinkančias konkrečią reikšmę arba reikšmių rinkinį, generuodama indeksą stulpelyje, taip sumažindama užklausos atlikimo laiką.
  • Efektyvi prieiga prie duomenų: Indeksavimas gali padidinti duomenų prieigos efektyvumą, sumažindamas disko įvesties / išvesties kiekį, reikalingą duomenims gauti. Duomenų bazė gali išlaikyti dažnai lankomų stulpelių duomenų puslapius atmintyje, sugeneruodama tų stulpelių indeksą, sumažindama reikalavimą skaityti iš disko.
  • Optimizuotas duomenų rūšiavimas: Indeksavimas taip pat gali pagerinti rūšiavimo operacijų našumą. Sukūrus rūšiavimui naudojamų stulpelių indeksą, duomenų bazė gali išvengti visos lentelės rūšiavimo ir rūšiuoti tik atitinkamas eilutes.
  • Nuoseklus duomenų našumas: Indeksavimas gali padėti užtikrinti, kad duomenų bazė veiktų nuosekliai, net ir didėjant duomenų kiekiui duomenų bazėje. Neindeksuojant užklausų vykdymas gali užtrukti ilgiau, nes didėja lentelės eilučių skaičius, o indeksuojant palaikomas maždaug vienodas greitis.
  • Užtikrinant, kad į stulpelius, kurie buvo indeksuoti kaip unikalūs, būtų įterpiamos tik unikalios reikšmės, indeksavimas taip pat gali būti naudojamas duomenų vientisumui užtikrinti. Taip išvengiama pasikartojančių duomenų saugojimo duomenų bazėje, dėl ko gali kilti problemų atliekant užklausas ar ataskaitas.

Apskritai, indeksavimas duomenų bazėse suteikia didelę naudą gerinant užklausų našumą, efektyvią prieigą prie duomenų, optimizuotą duomenų rūšiavimą, nuoseklų duomenų našumą ir užtikrintą duomenų vientisumą.

Indeksavimo trūkumai

  • Indeksuojant reikia daugiau saugyklos vietos indekso duomenų struktūrai laikyti, todėl gali padidėti bendras duomenų bazės dydis.
  • Padidėjusios duomenų bazės priežiūros išlaidos: Indeksai turi būti palaikomi, kai duomenys pridedami, sunaikinami arba keičiami lentelėje, o tai gali padidinti duomenų bazės priežiūros išlaidas.
  • Indeksavimas gali sumažinti įterpimo ir atnaujinimo našumą, nes indekso duomenų struktūra turi būti atnaujinama kiekvieną kartą, kai keičiami duomenys.
  • Indekso pasirinkimas gali būti sudėtingas: Gali būti sudėtinga pasirinkti tinkamus indeksus konkrečiai užklausai ar programai, todėl gali prireikti išsamiai išnagrinėti duomenis ir prieigos modelius.

Indeksavimo ypatybės

  • Duomenų struktūrų kūrimas, pvz B-medžiai arba Svarbiausi stulpeliai, skirti indeksuoti stulpelius, parenkami pagal tai, kaip dažnai jie naudojami ir kokios užklausos jiems pateikiamos. The kardinalumas Galima atsižvelgti į indeksavimo stulpelių selektyvumą ir unikalumą.
  • Duomenų bazėse naudojami keli skirtingi indeksų tipai, įskaitant pirminius, antrinius, sugrupuotus ir nesugrupuotus indeksus. Atsižvelgiant į konkrečius duomenų bazių sistemos poreikius, kiekviena indekso forma turi privalumų ir trūkumų.
  • Kad duomenų bazės sistema veiktų geriausiai, būtina periodinė indekso priežiūra. Atsižvelgiant į duomenų ir naudojimo modelių pokyčius, priežiūros darbai apima indeksų kūrimą, atnaujinimą ir pašalinimą.
  • Duomenų bazės užklausų optimizavimas apima indeksavimą, kuris yra būtinas. Užklausos optimizavimo priemonė naudoja indeksus, kad pasirinktų geriausią konkrečios užklausos vykdymo strategiją, atsižvelgdama į duomenų prieigos kainą ir indeksavimo stulpelių selektyvumą.
  • Duomenų bazėse naudojamos įvairios indeksavimo strategijos, įskaitant indeksų įtraukimą, tik indekso nuskaitymą ir dalinius indeksus. Šie metodai maksimaliai išnaudoja indeksus tam tikro tipo užklausoms ir prieigai prie duomenų.
  • Kai indekse saugomi negretimi duomenų blokai, indeksas gali suskaidyti, todėl indeksas tampa mažiau efektyvus. Reguliarus indekso priežiūra, pvz., defragmentavimas ir pertvarkymas, gali sumažėti suskaidymas .

Išvada

Indeksavimas yra labai naudinga technika, padedanti optimizuoti paieškos laiką duomenų bazėje užklausų. Duomenų bazės indeksavimo lentelę sudaro paieškos raktas ir rodyklė . Yra keturi indeksavimo tipai: pirminis, antrinis grupavimas ir daugiareikšmis indeksavimas. Pirminis indeksavimas skirstomas į du tipus: tankų ir negausų. Tankus indeksavimas naudojamas, kai rodyklės lentelėje yra kiekvieno paieškos rakto įrašai. Retas indeksavimas naudojamas, kai rodyklės lentelėje kiekvienam įrašui nenaudojamas paieškos raktas. Kelių lygių indeksavimo naudojimas B+ medis . Pagrindinis indeksavimo tikslas – užtikrinti geresnį duomenų gavimo našumą.

DUK apie indeksavimą

1 klausimas: kas yra indeksavimas duomenų bazėse?

Atsakymas:

Indeksavimas iš esmės yra metodas, padedantis sumažinti duomenų bazės užklausos paieškos laiką arba greičiau pasiekti duomenų bazę.

2 klausimas: kokie yra indeksavimo duomenų bazių pavyzdžiai?

Atsakymas:

.06 kaip trupmena

Kai kurie įprasti indeksavimo duomenų bazių pavyzdžiai yra „Web of Science“, DOAJ (atvirosios prieigos žurnalų katalogas)

Norėdami gauti daugiau informacijos, galite kreiptis į Įvadas į B+ medį ir Raktų tipai duomenų bazėje straipsnis.