logo

Indeksointi tietokantoissa – sarja 1

Indeksointi parantaa tietokannan suorituskykyä minimoimalla kyselyn täyttämiseen tarvittavien levykäyntien määrän. Se on tietorakennetekniikka, jota käytetään tietokantojen tietojen paikallistamiseen ja nopeaan käyttöön. Useita tietokantakenttiä käytetään indeksien luomiseen. Taulukon pääavain tai ehdokasavain kopioidaan ensimmäiseen sarakkeeseen, joka on hakuavain. Tietojen haun nopeuttamiseksi arvot pidetään myös lajiteltuna. On syytä korostaa, että tietojen lajittelua ei vaadita. Toinen sarake on Data Reference tai Pointer, joka sisältää joukon osoittimia, joissa on sen levylohkon osoite, josta kyseinen avainarvo löytyy.

Indeksin rakenne tietokannassa



Indeksoinnin ominaisuudet

  • Käyttöoikeustyypit: Tämä viittaa käyttöoikeustyyppiin, kuten arvoon perustuva haku, aluekäyttö jne.
  • Kirjautumisaika: Se viittaa aikaan, joka tarvitaan tietyn tietoelementin tai elementtijoukon löytämiseen.
  • Lisäysaika: Se tarkoittaa aikaa, joka kuluu sopivan tilan löytämiseen ja uuden tiedon lisäämiseen.
  • Poistoaika: Kohteen etsimiseen ja poistamiseen sekä hakemistorakenteen päivittämiseen kului aikaa.
  • Tila yläpuolella: Se viittaa indeksin vaatimaan lisätilaan.

Indeksin rakenne tietokannassa

Yleensä on olemassa kahden tyyppisiä tiedostojen organisointimekanismeja, joita seuraavat indeksointimenetelmät tietojen tallentamiseksi:

Peräkkäinen tiedostojärjestely tai tilattu hakemistotiedosto

Tässä indeksit perustuvat arvojen lajiteltuun järjestykseen. Nämä ovat yleensä nopeita ja perinteisempiä säilytysmekanismeja. Nämä järjestetyt tai peräkkäiset tiedostot voivat tallentaa tiedot tiheässä tai harvassa muodossa.



  • Tiheä indeksi
    • Jokaiselle datatiedoston hakuavaimen arvolle on indeksitietue.
    • Tämä tietue sisältää hakuavaimen ja myös viittauksen ensimmäiseen tietueeseen, jolla on hakuavaimen arvo.

Tiheä indeksi

  • Harva indeksi
    • Indeksitietue näkyy vain muutamille tietotiedoston kohteille. Jokainen kohde osoittaa lohkoon kuvan mukaisesti.
    • Tietueen löytämiseksi löydämme hakemistotietueen, jonka suurin hakuavaimen arvo on pienempi tai yhtä suuri kuin etsimämme hakuavaimen arvo.
    • Aloitamme indeksitietueen osoittamasta tietueesta ja jatkamme tiedoston osoittimien kanssa (eli peräkkäin), kunnes löydämme halutun tietueen.
    • Tarvittavien pääsyjen määrä = log₂(n)+1, (tässä n = indeksitiedoston hankkimien lohkojen määrä)

Harva indeksi

Hash-tiedostojen organisaatio

Indeksit perustuvat arvoihin, jotka jakautuvat tasaisesti eri ryhmien välillä. Ryhmät, joille arvo on määritetty, määrittää funktio, jota kutsutaan hash-funktioksi. Indeksointimenetelmiä on pääasiassa kolme:



  • Klusteroitu indeksointi : Kun samaan tiedostoon on tallennettu enemmän kuin kaksi tietuetta, tämän tyyppistä tallennusta kutsutaan klusteriindeksointiksi. Klusteriindeksointia käyttämällä voimme vähentää syyn etsimisen kustannuksia, koska samaan asiaan liittyvät tietueet tallennetaan yhteen paikkaan ja se antaa myös useamman kuin kahden taulukon (tietueen) toistuvan yhdistämisen.
    Klusterointiindeksi määritellään järjestetyssä datatiedostossa. Tietotiedosto on järjestetty ei-avainkenttään. Joissakin tapauksissa indeksi luodaan ei-ensisijaisiin avainsarakkeisiin, jotka eivät välttämättä ole yksilöllisiä kullekin tietueelle. Tällaisissa tapauksissa tietueiden tunnistamiseksi nopeammin ryhmittelemme kaksi tai useampia sarakkeita yhteen saadaksemme yksilölliset arvot ja luomme niistä indeksin. Tämä menetelmä tunnetaan klusterointiindeksinä. Pohjimmiltaan tietueet, joilla on samanlaiset ominaisuudet, ryhmitellään yhteen, ja näille ryhmittelyille muodostetaan indeksit.
    Esimerkiksi lukukauden aikana opiskelevat opiskelijat ryhmitellään yhteen. Ensimmäisen lukukauden opiskelijat, toisen lukukauden opiskelijat, kolmannen lukukauden opiskelijat ja niin edelleen luokitellaan.

Klusteroitu indeksointi

linux merkki
  • Ensisijainen indeksointi: Tämä on eräänlainen klusteroitu indeksointi, jossa tiedot lajitellaan hakuavaimen mukaan ja tietokantataulukon ensisijaista avainta käytetään indeksin luomiseen. Se on oletusmuoto indeksoinnille, missä se indusoi peräkkäinen tiedostojen järjestäminen . Koska ensisijaiset avaimet ovat ainutlaatuisia ja ne tallennetaan lajiteltuna, hakutoiminto on varsin tehokas.
  • Klusteriton tai toissijainen indeksointi : Klusteroimaton indeksi vain kertoo meille, missä tiedot ovat, eli se antaa meille luettelon virtuaalisista osoittimista tai viittauksista paikkaan, jossa tiedot todella on tallennettu. Tietoja ei tallenneta fyysisesti indeksin mukaisessa järjestyksessä. Sen sijaan tiedot ovat läsnä lehtien solmuissa. Sille esim. kirjan sisältösivulle. Jokainen merkintä antaa meille tallennettujen tietojen sivunumeron tai sijainnin. Varsinaisia ​​tietoja täällä (tiedot jokaisella kirjan sivulla) ei ole järjestetty, mutta meillä on tilattu viite (sisältösivu) siihen, missä datapisteet todellisuudessa sijaitsevat. Meillä voi olla vain tiheä järjestys klusteroimattomassa indeksissä, koska harva järjestys ei ole mahdollista, koska dataa ei ole fyysisesti järjestetty vastaavasti.
    Se vaatii enemmän aikaa klusteroituun indeksiin verrattuna, koska datan poimiminen osoitinta edelleen seuraamalla tehdään jonkin verran ylimääräistä työtä. Klusteroidun indeksin tapauksessa tiedot ovat suoraan indeksin edessä.
Ei klusteroitu indeksointi

Ei klusteroitu indeksointi

  • Monitasoinen indeksointi: Tietokannan koon kasvaessa myös indeksit kasvavat. Koska hakemisto tallennetaan päämuistiin, yksitasoisesta hakemistosta saattaa tulla liian suuri tallennettavaksi useiden levykäyttöjen yhteydessä. Monitasoinen indeksointi erottaa päälohkon useisiin pienempiin lohkoihin, jotta sama voidaan tallentaa yhteen lohkoon. Ulommat lohkot on jaettu sisempiin lohkoihin, jotka puolestaan ​​on osoitettu datalohkoihin. Tämä voidaan helposti tallentaa päämuistiin pienemmillä yleiskustannuksilla.

Monitasoinen indeksointi

Indeksoinnin edut

  • Parannettu kyselyn tehokkuus: Indeksointi mahdollistaa nopeamman tiedonhaun tietokannasta. Tietokanta voi nopeasti löytää rivejä, jotka vastaavat tiettyä arvoa tai arvokokoelmaa luomalla indeksin sarakkeeseen, minimoiden kyselyn suorittamiseen kuluvan ajan.
  • Tehokas tietojen käyttö: Indeksointi voi tehostaa tietojen käyttöä vähentämällä tietojen hakemiseen tarvittavan levyn I/O-määrää. Tietokanta voi ylläpitää usein vierailtujen sarakkeiden tietosivuja muistissa luomalla indeksin näihin sarakkeisiin, mikä vähentää levyltä lukemisen tarvetta.
  • Optimoitu tietojen lajittelu: Indeksointi voi myös parantaa lajittelutoimintojen suorituskykyä. Luomalla indeksin lajitteluun käytettäville sarakkeille tietokanta voi välttää koko taulukon lajittelun ja lajitella vain asiaankuuluvat rivit.
  • Yhdenmukainen tietojen suorituskyky: Indeksointi voi auttaa varmistamaan, että tietokanta toimii johdonmukaisesti, vaikka tietokannan datamäärä kasvaa. Ilman indeksointia kyselyiden suorittaminen voi kestää kauemmin, kun taulukon rivien määrä kasvaa, kun taas indeksointi ylläpitää suunnilleen tasaista nopeutta.
  • Varmistamalla, että sarakkeisiin, jotka on indeksoitu ainutlaatuisiksi, lisätään vain yksilöllisiä arvoja, indeksointia voidaan käyttää myös tietojen eheyden varmistamiseen. Näin vältetään päällekkäisten tietojen tallentaminen tietokantaan, mikä saattaa johtaa ongelmiin kyselyitä tai raportteja suoritettaessa.

Kaiken kaikkiaan tietokantojen indeksointi tarjoaa merkittäviä etuja kyselyn suorituskyvyn, tehokkaan tietojen käytön, optimoidun tietojen lajittelun, yhdenmukaisen tietojen suorituskyvyn ja pakotetun tietojen eheyden parantamisessa.

Indeksoinnin haitat

  • Indeksointi vaatii enemmän tallennustilaa indeksitietorakenteen säilyttämiseksi, mikä saattaa kasvattaa tietokannan kokonaiskokoa.
  • Lisääntynyt tietokannan ylläpitokustannus: Indeksejä on ylläpidettävä, kun tietoja lisätään, tuhotaan tai muutetaan taulukkoon, mikä saattaa lisätä tietokannan ylläpitokustannuksia.
  • Indeksointi voi heikentää lisäyksen ja päivityksen suorituskykyä, koska indeksitietorakenne on päivitettävä aina, kun tietoja muutetaan.
  • Indeksin valitseminen voi olla vaikeaa: Oikeiden indeksien valitseminen tietylle kyselylle tai sovellukselle voi olla haastavaa ja saattaa vaatia tietojen ja käyttötapojen yksityiskohtaista tarkastelua.

Indeksoinnin ominaisuudet

  • Tietorakenteiden kehittäminen, mm B-puut tai Tärkeimmät sarakkeet indeksoitavassa sarakkeessa valitaan sen mukaan, kuinka usein niitä käytetään ja minkälaisia ​​kyselyitä niihin kohdistuu. The kardinaalisuus , valikoivuus ja indeksointisarakkeiden ainutlaatuisuus voidaan ottaa huomioon.
  • Tietokannat käyttävät useita erilaisia ​​indeksityyppejä, mukaan lukien ensisijaiset, toissijaiset, klusteroidut ja ei-klusteroidut indeksit. Tietokantajärjestelmän erityistarpeiden perusteella jokainen indeksimuoto tarjoaa etuja ja haittoja.
  • Jotta tietokantajärjestelmä toimisi parhaalla mahdollisella tavalla, hakemistojen säännöllinen ylläpito on tarpeen. Tietojen ja käyttötapojen muutosten mukaan ylläpitotyöhön kuuluu indeksien rakentamista, päivittämistä ja poistamista.
  • Tietokantakyselyn optimointi sisältää indeksoinnin, mikä on välttämätöntä. Kyselyn optimoija käyttää indeksejä valitakseen parhaan suoritusstrategian tietylle kyselylle tietojen käyttökustannusten ja indeksointisarakkeiden valikoivuuden perusteella.
  • Tietokannat hyödyntävät useita indeksointistrategioita, mukaan lukien indeksit kattavat, vain indeksitarkistukset ja osittaiset indeksit. Nämä tekniikat maksimoivat indeksien käytön tietyntyyppisille kyselyille ja tietojen käyttöön.
  • Kun ei-peräkkäisiä tietolohkoja tallennetaan indeksiin, se voi johtaa indeksin pirstoutumiseen, mikä tekee indeksistä vähemmän tehokasta. Säännöllinen indeksin ylläpito, kuten eheyttäminen ja uudelleenjärjestely, voi vähentyä pirstoutuminen .

Johtopäätös

Indeksointi on erittäin hyödyllinen tekniikka, joka auttaa optimoimaan hakuaikaa tietokanta kyselyitä. Tietokannan indeksointitaulukko koostuu hakuavaimesta ja osoitin . Indeksointia on neljää tyyppiä: ensisijainen, toissijainen klusteri ja moniarvoinen indeksointi. Ensisijainen indeksointi on jaettu kahteen tyyppiin, tiheään ja harvaan. Tiheää indeksointia käytetään, kun indeksitaulukko sisältää tietueet jokaiselle hakuavaimelle. Harvaa indeksointia käytetään, kun indeksitaulukko ei käytä hakuavainta jokaisessa tietueessa. Monitasoisen indeksoinnin käyttö B+ puu . Indeksoinnin päätarkoitus on tarjota parempi suorituskyky tiedonhaussa.

Usein kysytyt kysymykset indeksoinnista

K.1: Mitä on indeksointi tietokantoissa?

Vastaus:

Indeksointi on pohjimmiltaan tekniikka, joka auttaa vähentämään tietokantakyselyn hakuaikaa tai se auttaa nopeammin pääsemään tietokantaan.

K.2: Mitkä ovat esimerkkejä indeksointitietokannoista?

Vastaus:

Joitakin yleisiä esimerkkejä indeksointitietokannoista ovat Web of Science, DOAJ (Open Access Journals -hakemisto)

Lisätietoja saat osoitteesta Johdatus B+ Treeen ja Tietokannan avainten tyypit artikla.