logo

Indeksēšana datu bāzēs — 1. kopa

Indeksēšana uzlabo datu bāzes veiktspēju, samazinot diska apmeklējumu skaitu, kas nepieciešams vaicājuma izpildei. Tas ir datu struktūras paņēmiens, ko izmanto datu atrašanai un ātrai piekļuvei datu bāzēs. Indeksu ģenerēšanai tiek izmantoti vairāki datu bāzes lauki. Tabulas galvenā atslēga vai kandidāta atslēga tiek dublēta pirmajā kolonnā, kas ir meklēšanas atslēga. Lai paātrinātu datu izguvi, vērtības tiek saglabātas arī sakārtotā secībā. Jāuzsver, ka datu kārtošana nav nepieciešama. Otrā kolonna ir datu atsauce vai rādītājs, kurā ir rādītāju kopa, kurā ir diska bloka adrese, kurā var atrast konkrēto atslēgas vērtību.

Indeksa struktūra datu bāzē

Indeksēšanas atribūti

  • Piekļuves veidi: Tas attiecas uz piekļuves veidu, piemēram, uz vērtībām balstītu meklēšanu, diapazona piekļuvi utt.
  • Piekļuves laiks: Tas attiecas uz laiku, kas nepieciešams, lai atrastu konkrētu datu elementu vai elementu kopu.
  • Ievietošanas laiks: Tas attiecas uz laiku, kas nepieciešams, lai atrastu piemērotu vietu un ievietotu jaunus datus.
  • Dzēšanas laiks: Laiks, kas nepieciešams, lai atrastu vienumu un to izdzēstu, kā arī atjauninātu indeksa struktūru.
  • Vieta virs galvas: Tas attiecas uz indeksam nepieciešamo papildu vietu.

Indeksa struktūra datu bāzē



Kopumā ir divu veidu failu organizēšanas mehānismi, kam seko indeksēšanas metodes datu glabāšanai:

Secīgā failu organizācija vai sakārtots indeksa fails

Šajā gadījumā indeksi ir balstīti uz sakārtotu vērtību secību. Tie parasti ir ātri un tradicionālāki uzglabāšanas mehānismi. Šīs sakārtotās vai secīgās failu organizācijas var uzglabāt datus blīvā vai retā formātā.

  • Blīvs indekss
    • Katrai meklēšanas atslēgas vērtībai datu failā ir indeksa ieraksts.
    • Šajā ierakstā ir ietverta meklēšanas atslēga un arī atsauce uz pirmo datu ierakstu ar šo meklēšanas atslēgas vērtību.

Blīvs indekss

  • Rets indekss
    • Indeksa ieraksts parādās tikai dažiem vienumiem datu failā. Katrs vienums norāda uz bloku, kā parādīts attēlā.
    • Lai atrastu ierakstu, mēs atrodam indeksa ierakstu ar lielāko meklēšanas atslēgas vērtību, kas ir mazāka vai vienāda ar meklēto meklēšanas atslēgas vērtību.
    • Mēs sākam no tā ieraksta, uz kuru norāda indeksa ieraksts, un turpinām ar faila norādes (tas ir, secīgi), līdz atrodam vajadzīgo ierakstu.
    • Nepieciešamo piekļuvi skaits = log₂(n)+1, (šeit n = indeksa faila iegūto bloku skaits)

Rets indekss

kolekcija java

Hash failu organizācija

Indeksi ir balstīti uz vērtībām, kas ir vienmērīgi sadalītas dažādos segmentos. Grupas, kurām tiek piešķirta vērtība, nosaka funkcija, ko sauc par jaucējfunkciju. Galvenokārt ir trīs indeksēšanas metodes:

  • Klasterizēta indeksācija : ja vienā failā tiek saglabāti vairāk nekā divi ieraksti, šāda veida saglabāšana tiek dēvēta par klasteru indeksēšanu. Izmantojot klasteru indeksāciju, mēs varam samazināt iemesla meklēšanas izmaksas, jo vienuviet tiek glabāti vairāki ar vienu un to pašu lietu saistīti ieraksti, kā arī tiek nodrošināta bieža vairāk nekā divu tabulu (ierakstu) savienošana.
    Klasterizācijas indekss ir definēts sakārtotā datu failā. Datu fails ir sakārtots laukā bez atslēgas. Dažos gadījumos indekss tiek izveidots kolonnās, kas nav primārās atslēgas un var nebūt unikālas katram ierakstam. Šādos gadījumos, lai ātrāk identificētu ierakstus, mēs sagrupēsim divas vai vairākas kolonnas, lai iegūtu unikālās vērtības un izveidotu no tām indeksu. Šī metode ir pazīstama kā klasterizācijas indekss. Būtībā ieraksti ar līdzīgiem rekvizītiem tiek grupēti kopā un tiek veidoti šo grupu indeksi.
    Piemēram, studenti, kas mācās katru semestri, tiek sagrupēti. Pirmā semestra studenti, otrā semestra studenti, trešā semestra studenti un tā tālāk tiek iedalīti kategorijās.

Klasterizēta indeksācija

  • Primārā indeksācija: Šis ir klasterizētās indeksēšanas veids, kurā dati tiek sakārtoti atbilstoši meklēšanas atslēgai, un indeksa izveidošanai tiek izmantota datu bāzes tabulas primārā atslēga. Tas ir noklusējuma indeksēšanas formāts, kur tas izraisa secīga failu organizēšana . Tā kā primārās atslēgas ir unikālas un tiek glabātas sakārtotā veidā, meklēšanas darbība ir diezgan efektīva.
  • Negrupēta vai sekundārā indeksācija : Negrupēts indekss tikai norāda, kur atrodas dati, t.i., tas sniedz mums virtuālo norāžu sarakstu vai atsauces uz vietu, kur dati faktiski tiek glabāti. Dati netiek fiziski saglabāti indeksa secībā. Tā vietā dati atrodas lapu mezglos. Piemēram, grāmatas satura lapa. Katrs ieraksts sniedz mums lapas numuru vai saglabātās informācijas atrašanās vietu. Faktiskie dati šeit (informācija katrā grāmatas lapā) nav sakārtoti, bet mums ir sakārtota atsauce (satura lapa) uz to, kur faktiski atrodas datu punkti. Neklasterētajā indeksā var būt tikai blīva secība, jo reta secība nav iespējama, jo dati nav fiziski atbilstoši sakārtoti.
    Tas prasa vairāk laika, salīdzinot ar klasterizēto indeksu, jo tiek veikts zināms papildu darbs, lai iegūtu datus, tālāk sekojot rādītājam. Klasterizēta indeksa gadījumā dati atrodas tieši indeksa priekšā.
Negrupēta indeksācija

Negrupēta indeksācija

  • Daudzlīmeņu indeksēšana: Pieaugot datu bāzes izmēram, aug arī indeksi. Tā kā indekss tiek glabāts galvenajā atmiņā, viena līmeņa indekss var kļūt pārāk liels, lai to uzglabātu, ja ir vairākas diska piekļuves. Daudzlīmeņu indeksēšana sadala galveno bloku dažādos mazākos blokos, lai tos pašus varētu saglabāt vienā blokā. Ārējie bloki ir sadalīti iekšējos blokos, kas savukārt ir norādīti uz datu blokiem. To var viegli saglabāt galvenajā atmiņā ar mazākām pieskaitāmām izmaksām.

Daudzlīmeņu indeksēšana

Indeksēšanas priekšrocības

  • Uzlabota vaicājuma veiktspēja: Indeksēšana nodrošina ātrāku datu izgūšanu no datu bāzes. Datubāze var ātri atklāt rindas, kas atbilst noteiktai vērtībai vai vērtību kolekcijai, kolonnā ģenerējot indeksu, tādējādi samazinot vaicājuma veikšanai nepieciešamo laiku.
  • Efektīva piekļuve datiem: Indeksēšana var uzlabot datu piekļuves efektivitāti, samazinot datu izgūšanai nepieciešamo diska I/O apjomu. Datu bāze var saglabāt atmiņā bieži apmeklēto kolonnu datu lapas, ģenerējot šajās kolonnās indeksu, tādējādi samazinot nolasīšanas nepieciešamību no diska.
  • Optimizēta datu kārtošana: Indeksēšana var arī uzlabot šķirošanas darbību veiktspēju. Izveidojot indeksu kārtošanai izmantotajām kolonnām, datu bāze var izvairīties no visas tabulas kārtošanas un kārtot tikai attiecīgās rindas.
  • Konsekventa datu veiktspēja: Indeksēšana var palīdzēt nodrošināt, ka datubāze darbojas konsekventi, pat pieaugot datu apjomam datu bāzē. Bez indeksēšanas vaicājumu izpilde var aizņemt ilgāku laiku, jo palielinās tabulas rindu skaits, savukārt indeksēšana saglabā aptuveni konsekventu ātrumu.
  • Nodrošinot, ka kolonnās, kas ir indeksētas kā unikālas, tiek ievietotas tikai unikālas vērtības, indeksēšanu var izmantot arī datu integritātes nodrošināšanai. Tas ļauj izvairīties no datu dublikātu glabāšanas datu bāzē, kas var radīt problēmas, veicot vaicājumus vai atskaites.

Kopumā indeksēšana datu bāzēs sniedz ievērojamas priekšrocības, uzlabojot vaicājumu veiktspēju, efektīvu piekļuvi datiem, optimizētu datu šķirošanu, konsekventu datu veiktspēju un pastiprinātu datu integritāti.

Indeksēšanas trūkumi

  • Indeksēšanai ir nepieciešams vairāk krātuves vietas, lai saglabātu indeksa datu struktūru, kas var palielināt datu bāzes kopējo lielumu.
  • Palielinātas datu bāzes uzturēšanas izmaksas: Indeksi ir jāuztur, kad dati tiek pievienoti, iznīcināti vai mainīti tabulā, kas var palielināt datu bāzes uzturēšanas izmaksas.
  • Indeksēšana var samazināt ievietošanas un atjaunināšanas veiktspēju, jo indeksa datu struktūra ir jāatjaunina katru reizi, kad dati tiek mainīti.
  • Indeksa izvēle var būt sarežģīta: Var būt sarežģīti izvēlēties pareizos indeksus konkrētam vaicājumam vai lietojumprogrammai, un var būt nepieciešama detalizēta datu un piekļuves modeļu pārbaude.

Indeksēšanas iezīmes

  • Datu struktūru izstrāde, piemēram, B-koki vai Vissvarīgākās kolonnas kolonnu indeksēšanai tiek atlasītas, pamatojoties uz to izmantošanas biežumu un vaicājumu veidu, kuriem tās tiek pakļautas. The kardinalitāte , var ņemt vērā indeksēšanas kolonnu selektivitāti un unikalitāti.
  • Datubāzes izmanto vairākus dažādus indeksu veidus, tostarp primāros, sekundāros, grupētos un negrupētos indeksus. Balstoties uz datu bāzes sistēmas īpašajām vajadzībām, katrs indeksa veids piedāvā priekšrocības un trūkumus.
  • Lai datu bāzes sistēma darbotos pēc iespējas labāk, ir nepieciešama periodiska indeksa uzturēšana. Saskaņā ar izmaiņām datos un lietošanas modeļos apkopes darbi ietver indeksu izveidi, atjaunināšanu un noņemšanu.
  • Datu bāzes vaicājumu optimizācija ietver indeksēšanu, kas ir būtiska. Vaicājumu optimizētājs izmanto indeksus, lai izvēlētos labāko izpildes stratēģiju konkrētam vaicājumam, pamatojoties uz datu piekļuves izmaksām un indeksēšanas kolonnu selektivitāti.
  • Datu bāzes izmanto dažādas indeksēšanas stratēģijas, tostarp indeksu aptveršanu, tikai indeksu skenēšanu un daļējus indeksus. Šīs metodes maksimāli palielina indeksu izmantošanu noteikta veida vaicājumiem un datu piekļuvei.
  • Ja indeksā tiek saglabāti nesaistīti datu bloki, tas var izraisīt indeksa sadrumstalotību, kas padara indeksu mazāk efektīvu. Regulāra indeksa uzturēšana, piemēram, defragmentēšana un reorganizācija, var samazināties sadrumstalotība .

Secinājums

Indeksēšana ir ļoti noderīgs paņēmiens, kas palīdz optimizēt meklēšanas laiku datubāze vaicājumus. Datu bāzes indeksēšanas tabula sastāv no meklēšanas atslēgas un rādītājs . Ir četri indeksēšanas veidi: primārā, sekundārā klasterēšana un daudzvērtību indeksēšana. Primārā indeksācija ir sadalīta divos veidos: blīvā un retā. Blīvā indeksācija tiek izmantota, ja indeksa tabulā ir ieraksti par katru meklēšanas taustiņu. Reta indeksēšana tiek izmantota, ja indeksa tabulā katram ierakstam netiek izmantota meklēšanas atslēga. Daudzlīmeņu indeksēšanas izmantošana B+ koks . Indeksēšanas galvenais mērķis ir nodrošināt labāku datu izguves veiktspēju.

Bieži uzdotie jautājumi par indeksēšanu

1. jautājums: Kas ir indeksēšana datu bāzēs?

Atbilde:

Indeksēšana būtībā ir metode, kas palīdz samazināt datu bāzes vaicājuma meklēšanas laiku vai palīdz ātrāk piekļūt datu bāzei.

2. J. Kādi ir indeksēšanas datu bāzu piemēri?

Atbilde:

Daži izplatīti indeksēšanas datu bāzu piemēri ir Web of Science, DOAJ (atvērtās piekļuves žurnālu direktorijs)

Lai iegūtu sīkāku informāciju, varat atsaukties uz Ievads B+ kokā un Atslēgu veidi datu bāzē rakstu.