Indekseerimine DBMS-is: mis on, NÄIDETEGA indeksite tüübid
⚡ Nutikas kokkuvõte
Andmebaasis indekseerimine on andmestruktuuri tehnika, mis otsib kirjeid kiiresti kaardi abil.ping otsinguvõti oma kirje kettaaadressi jaoks. Primaarne, sekundaarne, klastrite moodustamise, mitmetasandiline ja B-puu indekseerib iga kauplemisruumi, kiiruse ja hoolduse erinevalt.

Mis on indekseerimine?
Indekseerimine on andmestruktuuri tehnika, mis võimaldab teil andmebaasifailist kiiresti kirjeid hankida. Indeks on väike tabel, millel on ainult kaks veergu. Esimene veerg sisaldab tabeli primaar- või kandidaatvõtme koopiat. Teine veerg sisaldab komplekti osutid mis hoiab kettaploki aadressi, kuhu see konkreetne võtmeväärtus on salvestatud.
Indeks:
- Võtab sisendiks otsinguvõtme.
- Tagastab tõhusalt sobivate kirjete kogu.
Ilma indeksi puudumisel peab andmebaas päringule vastamiseks skannima iga rida. Indeksi olemasolul hüppab see otse vastava ploki juurde, mistõttu valitud indeksitüübil on jõudlusele suur mõju.
DBMS-i indekseerimise tüübid

Andmebaasi indekseerimine defineeritakse selle indekseerimisatribuutide põhjal. Indekseerimismeetodeid on kaks peamist:
- Esmane indekseerimine
- Sekundaarne indekseerimine
DBMS-i esmane indeks
Primaarindeks on fikseeritud pikkusega järjestatud fail, millel on kaks välja. Esimene väli on sama mis primaarvõti ja teine väli osutab sellele konkreetsele andmeplokile. Primaarindeksis on indeksitabeli kirjete vahel alati üks-ühele seos.
Esmane indeks jaguneb samuti kahte tüüpi:
- Tihe indeks
- Hõreda indeks
Tihe indeks
Tihedas indeksis luuakse iga andmebaasis oleva otsinguvõtme väärtuse kohta kirje. See aitab otsida kiiremini, kuid vajab indeksikirjete salvestamiseks rohkem ruumi. Selle meetodi puhul sisaldavad kirjed otsinguvõtme väärtust ja osutavad kettal olevale tegelikule kirjele.
Hõreda indeks
Hõred indeksid on indeksikirjed, mis kuvatakse ainult osade faili väärtuste puhul. Hõredad indeksid aitavad lahendada tiheda indekseerimise probleeme. DB-süsteemidSelle meetodi puhul salvestab indeksveergude vahemik sama andmeploki aadressi ja kui andmeid on vaja hankida, siis see ploki aadress hangitakse.
Hõre indeks salvestab indeksikirjeid ainult mõne otsinguvõtme väärtuse jaoks. See vajab lisamiste ja kustutamiste jaoks vähem ruumi ja vähem hoolduskulusid, kuid on kirjete leidmisel aeglasem kui tihe indeks.
Allpool on näide hõreda indeksi andmebaasi indeksi kohta.
Tihe indeks vs hõre indeks
Kaks peamist indeksivarianti teevad vastandlikke kompromisse, mis on kokku võetud allpool.
| Aspekt | Tihe indeks | Hõreda indeks |
|---|---|---|
| Sissekanded | Üks otsinguvõtme kohta | Üks ploki kohta |
| Ruum | rohkem | Less |
| Otsingu kiirus | Kiiremini | Aeglasemalt |
| Hooldus | Kõrgem | Langetage |
Teisene indeks DBMS-is
Andmebaasihaldussüsteemis saab sekundaarse indeksi genereerida välja abil, millel on iga kirje jaoks unikaalne väärtus ja see peaks olema kandidaatvõti. Seda tuntakse ka mitteklasterdava indeksina.
Seda kahetasemelist andmebaasi indekseerimise tehnikat kasutatakse kaardi vähendamiseksping esimese taseme suurus. Esimese taseme jaoks on valitud suur numbrite vahemik, seega kaartping suurus jääb alati väikeseks.
Teisese indeksi näide
Vaatleme teisest indekseerimist andmebaasi indeksi näite abil. Pangakontode andmebaasis salvestatakse andmed järjestikku konto_numbri järgi, kuid võite soovida leida kõik kontod ABC panga kindlas filiaalis.
Siin saab iga otsinguvõtme jaoks luua teisese indeksi. Indeksikirje osutab ämbrile, mis sisaldab viiteid kõigile selle konkreetse otsinguvõtme väärtusega kirjetele.
Clusterindekseerimine DBMS-is
Klasterdatud indeksis salvestatakse indeksisse kirjed ise, mitte pointerid. Mõnikord luuakse indeks mitte-primaarvõtme veergudele, mis ei pruugi iga kirje jaoks unikaalsed olla. Sellises olukorras saate grupeerida kaks või enam veergu, et saada unikaalsed väärtused ja luua indeks, mida nimetatakse klastritud indeksiks. See aitab teil ka kirjet kiiremini tuvastada.
Näide: Oletame, et ettevõte on värvanud palju töötajaid erinevatesse osakondadesse. Sellisel juhul tuleks luua klasterdusindeks kõigi samasse osakonda kuuluvate töötajate jaoks.
Neid käsitletakse ühe klastrina ja indeks osutab klastrile tervikuna. Siin on Department_no mitte-unikaalne võti.
Mis on mitmetasandiline indeks?
Mitmetasandiline indekseerimine luuakse siis, kui primaarne indeks mällu ei mahu. Seda tüüpi indekseerimismeetodi puhul saab vähendada kettale juurdepääsude arvu mis tahes kirje juurde pääsemiseks. Kirjed salvestatakse kettal järjestikuse failina ja selle faili peale luuakse hõre indeks.
B-puu indeks
B-puu indeks on andmebaasisüsteemides puupõhise indekseerimise jaoks kõige laialdasemalt kasutatav andmestruktuur. See on mitmetasandiline puupõhise indekseerimise vorming, mis kasutab tasakaalustatud binaarsed otsingupuudKõik B-puu lehesõlmed hoiavad tegelikke andmeviiteid.
Lisaks on kõik lehesõlmed omavahel seotud lingitud loendiga, mis võimaldab B-puul toetada nii juhuslikku kui ka järjestikust juurdepääsu.
- Lehesõlmedel peab olema 2 kuni 4 väärtust.
- Iga tee juurest leheni on enamasti võrdse pikkusega.
- Lisaks juursõlmele on mitte-lehtsõlmedel 3–5 alamsõlme.
- Igal sõlmel, mis ei ole juur ega leht, on n/2 kuni n last.
Kus domineerivad täpse vaste otsingud ja vahemiku skaneeringud on haruldased, räsimine võib olla kiirem alternatiiv B-puu indeksile.
Indekseerimise eelised
Indekseerimise olulised eelised on järgmised:
- See aitab vähendada andmete hankimiseks vajalike I/O-operatsioonide koguarvu, seega ei pea te reale otse tabelist juurde pääsema.
- See pakub kasutajatele kiiremat andmete otsimist ja hankimist.
- See võib vähendada tabeliruumi, kuna te ei pea iga lingitud rea ROWID-d indeksisse salvestama.
- Lehesõlmede andmed on juba võtme väärtuse järgi järjestatud.
Indekseerimise puudused
Indekseerimise peamised puudused on järgmised:
- Indekseerimiseks vajate tabelis unikaalse väärtusega primaarvõtit.
- Te ei saa luua uut indeksit andmete põhjal, mis on juba samal viisil indekseeritud.
- Teil ei ole lubatud indeksiga organiseeritud tabelit partitsioonideks jagada.
- Indekseerimine vähendab jõudlust INSERT, DELETE ja UPDATE päringutes.





