„Duomenų bazės rodyklė“ reiškia specialią duomenų struktūrą, kuri pagreitina įrašų paiešką iš duomenų bazės lentelės. Duomenų bazių indeksai užtikrina, kad galite efektyviai rasti ir prieiti prie duomenų bazės lentelės duomenų, nereikėdami ieškoti kiekvienoje eilutėje kiekvieną kartą, kai apdorojama duomenų bazės užklausa.

Duomenų bazės rodyklę galima palyginti su knygos rodykle. Indeksai duomenų bazėse nurodo įrašą, kurio ieškote duomenų bazėje, lygiai taip pat, kaip knygos rodyklės puslapis nurodo norimą temą ar skyrių.

Nors duomenų bazės indeksai yra būtini norint greitai ir efektyviai ieškoti ir pasiekti duomenis, jie užima papildomą įrašymo ir atminties vietą.

Kas yra indeksas?

Duomenų bazių indeksai yra specialios paieškos lentelės, susidedančios iš dviejų stulpelių. Pirmasis stulpelis yra paieškos raktas, o antrasis - duomenų rodyklė. Raktai yra reikšmės, kurių norite ieškoti ir gauti iš duomenų bazės lentelės, o rodyklė arba nuoroda saugo disko bloko adresą to konkretaus paieškos rakto duomenų bazėje. Pagrindiniai laukai yra rūšiuojami taip, kad tai pagreitintų visų jūsų užklausų duomenų paiešką.

Kodėl verta naudoti duomenų bazių indeksavimą?

Čia jums parodysiu supaprastintą duomenų bazės indeksą. Tarkime, kad turite duomenų bazės lentelę iš aštuonių darbuotojų, dirbančių įmonėje, ir norite ieškoti informacijos apie paskutinį lentelės įrašą. Dabar, norėdami rasti ankstesnį įrašą, turite ieškoti kiekvienoje duomenų bazės eilutėje.

Tačiau tarkime, kad lentelę sutvarkėte abėcėlės tvarka pagal darbuotojų vardą. Taigi, čia indeksavimo raktai yra pagrįsti „vardo stulpeliu“. Tokiu atveju, jei ieškosite paskutiniame įraše,Zakas", Galite pereiti prie lentelės vidurio ir nuspręsti, ar mūsų įrašas yra prieš stulpelį, ar po jo.

Kaip žinote, tai bus po vidurinės eilutės, ir jūs galite vėl padalinti eilutes po vidurinės eilės per pusę ir palyginti panašiai. Tokiu būdu jums nereikia kirsti kiekvienos eilutės, kad rastumėte paskutinį įrašą.

Jei įmonėje būtų 1 000 000 darbuotojų ir paskutinis įrašas būtų „Zack“, turėtumėte ieškoti 50 000 eilučių, kad rastumėte jo vardą. Turėdami abėcėlinį indeksavimą, galite tai atlikti keliais žingsniais. Dabar galite įsivaizduoti, kiek greičiau duomenų paieška ir prieiga gali tapti indeksuojant duomenų bazę.

Susijęs: 13 svarbiausių SQL komandų, kurias turėtų žinoti kiekvienas programuotojas

Skirtingi duomenų bazių indeksų failų organizavimo metodai

Indeksavimas labai priklauso nuo naudojamo failų organizavimo mechanizmo. Paprastai indeksuojant duomenų bazes duomenims saugoti naudojami dviejų tipų failų organizavimo metodai. Jie aptariami toliau:

1. Užsakyta indekso byla: Tai yra tradicinis indekso duomenų saugojimo metodas. Taikant šį metodą, pagrindinės vertės yra rūšiuojamos tam tikra tvarka. Duomenys užsakytame indekso faile gali būti saugomi dviem būdais.

  • Negausus indeksas: Šio tipo indeksavimo atveju kiekvienam įrašui sukuriamas indekso įrašas.
  • Tankus indeksas: Tankiai indeksuojant kai kuriems įrašams sukuriamas indekso įrašas. Norėdami rasti įrašą naudodami šį metodą, pirmiausia turite surasti reikšmingiausią paieškos rakto vertę iš indekso įrašų, kurie yra mažesni arba lygūs ieškomo rakto vertei.

2. „Hash“ bylos organizavimas: Taikant šį failų organizavimo metodą, maišos funkcija nustato vietą arba disko bloką, kuriame saugomas įrašas.

Duomenų bazių indeksavimo tipai

Paprastai yra trys duomenų bazių indeksavimo metodai. Jie yra:

  • Grupinis indeksavimas
  • Neklasifikuotas indeksavimas
  • Kelių lygių indeksavimas

1. Grupinis indeksavimas

Grupuojant indeksavimą, viename faile gali būti saugomi daugiau nei du duomenų įrašai. Sistema tikrus duomenis laiko grupuotu indeksavimu, o ne rodyklėmis. Paieška yra ekonomiškai efektyvi atliekant grupinį indeksavimą, nes visi susiję duomenys saugomi toje pačioje vietoje.

Grupavimo indeksas naudojasi užsakytais duomenų failais, kad galėtų apibrėžti save. Be to, prie tokio tipo indeksavimo labai dažnai prisijungiama prie kelių duomenų bazių lentelių.

Taip pat galima sukurti indeksą pagal pirminius stulpelius, kurie nėra unikalūs kiekvienam klavišui. Tokiomis progomis jis sujungia kelis stulpelius ir sudaro unikalias grupuotų indeksų pagrindines reikšmes.

Taigi, trumpai tariant, grupių indeksai yra grupuojami panašūs duomenų tipai ir jiems kuriami indeksai.

Pavyzdys: Tarkime, yra įmonė, kurioje dirba virš 1000 darbuotojų 10 skirtingų skyrių. Tokiu atveju įmonė savo DBVS turėtų sukurti grupavimo indeksavimą, kad būtų indeksuojami tame pačiame skyriuje dirbantys darbuotojai.

Kiekvienas klasteris su darbuotojais, dirbančiais tame pačiame skyriuje, bus apibrėžtas kaip vienas klasteris, o duomenų rodyklės indeksuose nurodys klasterį kaip visumą.

Susijęs: Kas yra užsienio raktai SQL duomenų bazėse?

2. Neklasifikuotas indeksavimas

Neklasifikuotas indeksavimas reiškia indeksavimo tipą, kai indekso eilučių tvarka nėra tokia pati kaip fiziškai saugomi pradiniai duomenys. Vietoj to, nesugrupuotas indeksas rodo duomenų saugyklą duomenų bazėje.

Pavyzdys: Neklasterizuotas indeksavimas yra panašus į knygą, kurios turinio puslapis yra sutvarkytas. Čia duomenų rodyklė arba nuoroda yra sutvarkytas turinio puslapis, kuris yra surikiuotas abėcėlės tvarka, o faktiniai duomenys yra informacija knygos puslapiuose. Turinio puslapyje informacija knygos puslapiuose nesaugoma jų tvarka.

3. Daugiapakopis indeksavimas

Daugiapakopis indeksavimas naudojamas, kai indeksų skaičius yra labai didelis ir jis negali išsaugoti pirminio indekso pagrindinėje atmintyje. Kaip žinote, duomenų bazės indeksus sudaro paieškos raktai ir duomenų rodyklės. Padidėjus duomenų bazės dydžiui, auga ir indeksų skaičius.

Tačiau norint užtikrinti greitą paieškos operaciją, reikia išsaugoti rodyklės įrašus atmintyje. Jei vieno lygio indeksas naudojamas, kai indekso skaičius yra didelis, vargu ar jis išsaugos atmintyje dėl jo dydžio ir kelių prieigų.

Čia prasideda daugiapakopis indeksavimas. Ši technika suskirsto vieno lygio indeksą į kelis mažesnius blokus. Sugedus, išorinio lygio blokas tampa toks mažas, kad jį lengvai galima laikyti pagrindinėje atmintyje.

Susijęs: Kaip prisijungti prie „MySQL“ duomenų bazės naudojant „Java“

Kas yra SQL indekso fragmentacija?

Kai kuri nors rodyklės puslapių tvarka neatitinka fizinės duomenų failų tvarkos, sukelia SQL indekso fragmentaciją. Iš pradžių visi SQL indeksai neturi fragmentacijos, tačiau kai jūs pakartotinai naudojate duomenų bazę (įterpti / ištrinti / pakeisti duomenis), tai gali sukelti fragmentaciją.

Be duomenų bazės fragmentacijos, jūsų duomenų bazė taip pat gali susidurti su kitomis gyvybiškai svarbiomis problemomis, tokiomis kaip duomenų bazės sugadinimas. Tai gali sukelti duomenų praradimą ir žalos svetainę. Jei vykdote verslą su savo svetaine, tai gali būti lemtingas smūgis jums.

El
„SQL Server“ duomenys sugadinti? Pabandykite jį atkurti naudodami „SQL Recovery Toolbox“

„SQL Server“ atkūrimo įrankių dėžutė padeda ištaisyti sugadintus MS SQL serverio MDF failus visoms versijoms.

Skaitykite toliau

Susijusios temos
  • Programavimas
  • SQL
  • Duomenų analizė
  • duomenų bazė
Apie autorių
Zadhidas A. Powell (Paskelbta 12 straipsnių)

Zadhidas Powellas yra kompiuterių inžinierius, kuris atsisakė kodavimo, kad pradėtų rašyti! Kartu jis yra skaitmeninis rinkodaros specialistas, entuziastas, „SaaS“ ekspertas, skaitytojas ir norus sekti programinės įrangos tendencijas. Dažnai galite pastebėti, kad jis gitara sūpuoja miesto klubuose ar tikrina nardymą vandenyno dugne.

Daugiau iš Zadhido A. Powell

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Dar vienas žingsnis…!

Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.

.