logo

Indeksēšana DBVS

  • Indeksēšana tiek izmantota, lai optimizētu datu bāzes veiktspēju, samazinot diska piekļuves reižu skaitu, kas nepieciešams, kad vaicājums tiek apstrādāts.
  • Indekss ir datu struktūras veids. To izmanto, lai ātri atrastu un piekļūtu datiem datu bāzes tabulā.

Indeksa struktūra:

Indeksus var izveidot, izmantojot dažas datu bāzes kolonnas.

DBVS indeksēšana DBVS
  • Pirmā datu bāzes kolonna ir meklēšanas atslēga, kurā ir tabulas primārās atslēgas vai kandidāta atslēgas kopija. Primārās atslēgas vērtības tiek saglabātas sakārtotā secībā, lai attiecīgajiem datiem varētu viegli piekļūt.
  • Otrā datu bāzes kolonna ir datu atsauce. Tas satur rādītāju kopu, kurā atrodas diska bloka adrese, kurā var atrast konkrētās atslēgas vērtību.

Indeksēšanas metodes

DBVS indeksēšana DBVS

Pasūtītie indeksi

Indeksi parasti tiek sakārtoti, lai paātrinātu meklēšanu. Sakārtotie indeksi ir zināmi kā sakārtoti indeksi.

Piemērs : Pieņemsim, ka mums ir darbinieku tabula ar tūkstošiem ierakstu un katrs no tiem ir 10 baitus garš. Ja viņu ID sākas ar 1, 2, 3....un tā tālāk, un mums ir jāmeklē skolēns ar ID-543.

kaudze kārtot
  • Ja datu bāzē nav indeksa, mums ir jāmeklē diska bloks no sākuma līdz tas sasniedz 543. DBVS nolasīs ierakstu pēc 543*10=5430 baitu nolasīšanas.
  • Indeksa gadījumā mēs meklēsim, izmantojot indeksus, un DBVS nolasīs ierakstu pēc 542*2=1084 baitu nolasīšanas, kas ir ļoti mazāk, salīdzinot ar iepriekšējo gadījumu.

Primārais indekss

  • Ja indekss ir izveidots, pamatojoties uz tabulas primāro atslēgu, tad to sauc par primāro indeksēšanu. Šīs primārās atslēgas ir unikālas katram ierakstam un satur 1:1 attiecību starp ierakstiem.
  • Tā kā primārās atslēgas tiek glabātas sakārtotā secībā, meklēšanas darbība ir diezgan efektīva.
  • Primāro indeksu var iedalīt divos veidos: blīvs indekss un rets indekss.

Blīvs indekss

  • Blīvā indeksā ir indeksa ieraksts katrai meklēšanas atslēgas vērtībai datu failā. Tas padara meklēšanu ātrāku.
  • Šajā gadījumā ierakstu skaits indeksa tabulā ir tāds pats kā ierakstu skaits galvenajā tabulā.
  • Tam ir nepieciešams vairāk vietas, lai saglabātu pašu indeksa ierakstu. Indeksa ierakstiem ir meklēšanas atslēga un rādītājs uz faktisko ierakstu diskā.
DBVS indeksēšana DBVS

Rets rādītājs

  • Datu failā indeksa ieraksts parādās tikai dažiem vienumiem. Katrs vienums norāda uz bloku.
  • Šajā gadījumā, tā vietā, lai norādītu uz katru ierakstu galvenajā tabulā, rādītājs norāda uz ierakstiem galvenajā tabulā tukšumā.
DBVS indeksēšana DBVS

Klasterizācijas indekss

  • Klasterizētu indeksu var definēt kā sakārtotu datu failu. Dažreiz indekss tiek izveidots kolonnās, kas nav primārās atslēgas un kuras var nebūt unikālas katram ierakstam.
  • Šajā gadījumā, lai ātrāk identificētu ierakstu, mēs sagrupēsim divas vai vairākas kolonnas, lai iegūtu unikālo vērtību un izveidotu no tām indeksu. Šo metodi sauc par klasterizācijas indeksu.
  • Ieraksti, kuriem ir līdzīgi raksturlielumi, tiek grupēti, un šīm grupām tiek izveidoti indeksi.

Piemērs : pieņemsim, ka uzņēmumā katrā nodaļā ir vairāki darbinieki. Pieņemsim, ka mēs izmantojam klasterizācijas indeksu, kur visi darbinieki, kas pieder vienam un tam pašam Dept_ID, tiek uzskatīti vienā klasterī, un indeksa norādes norāda uz kopu kopumā. Šeit Dept_Id ir neunikāla atslēga.

DBVS indeksēšana DBVS

Iepriekšējā shēma ir maz mulsinoša, jo viens diska bloks tiek koplietots ar ierakstiem, kas pieder citai klasterim. Ja mēs izmantojam atsevišķu disku bloku atsevišķiem klasteriem, tad to sauc par labāku tehniku.

DBVS indeksēšana DBVS

Sekundārais indekss

Retajā indeksācijā, pieaugot tabulas izmēram, palielinās arī kartēšanas lielums. Šie kartējumi parasti tiek glabāti primārajā atmiņā, lai adreses ielāde būtu ātrāka. Pēc tam sekundārā atmiņa meklē faktiskos datus, pamatojoties uz adresi, kas iegūta no kartēšanas. Ja kartēšanas lielums palielinās, pašas adreses iegūšana kļūst lēnāka. Šajā gadījumā retais indekss nebūs efektīvs. Lai novērstu šo problēmu, tiek ieviesta sekundārā indeksācija.

java lambda piemērs

Sekundārajā indeksācijā, lai samazinātu kartēšanas lielumu, tiek ieviests cits indeksēšanas līmenis. Izmantojot šo metodi, sākotnēji tiek izvēlēts milzīgais kolonnu diapazons, lai pirmā līmeņa kartēšanas lielums kļūtu mazs. Pēc tam katrs diapazons tiek sadalīts mazākos diapazonos. Pirmā līmeņa kartējums tiek saglabāts primārajā atmiņā, lai adreses iegūšana būtu ātrāka. Otrā līmeņa kartējums un faktiskie dati tiek saglabāti sekundārajā atmiņā (cietajā diskā).

DBVS indeksēšana DBVS

Piemēram:

  • Ja vēlaties diagrammā atrast 111. metiena ierakstu, tā pirmā līmeņa rādītājā meklēs augstāko ierakstu, kas ir mazāks vai vienāds ar 111. Šajā līmenī tas saņems 100.
  • Pēc tam otrajā indeksa līmenī tas atkal sasniedz maksimumu (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
  • Šādi tiek veikta meklēšana šajā metodē. Tādā pašā veidā tiek veikta arī ievietošana, atjaunināšana vai dzēšana.