- Indeksointia käytetään tietokannan suorituskyvyn optimointiin minimoimalla kyselyn käsittelyssä tarvittavien levykäyttöjen määrä.
- Indeksi on eräänlainen tietorakenne. Sitä käytetään tietokantataulukon tietojen paikallistamiseen ja niihin pääsyyn nopeasti.
Indeksin rakenne:
Indeksejä voidaan luoda käyttämällä joitakin tietokannan sarakkeita.
- Tietokannan ensimmäinen sarake on hakuavain, joka sisältää kopion taulukon ensisijaisesta avaimesta tai ehdokasavaimesta. Ensisijaisen avaimen arvot tallennetaan lajiteltuun järjestykseen, jotta niitä vastaavat tiedot ovat helposti saatavilla.
- Tietokannan toinen sarake on tietoviite. Se sisältää joukon osoittimia, joissa on levylohkon osoite, josta tietyn avaimen arvo löytyy.
Indeksointimenetelmät
Tilatut indeksit
Indeksit lajitellaan yleensä hakua nopeuttamaan. Lajiteltuja indeksejä kutsutaan järjestetyiksi indekseiksi.
pandat luovat tietokehystä
Esimerkki : Oletetaan, että meillä on työntekijätaulukko, jossa on tuhansia tietueita ja joista jokainen on 10 tavua pitkä. Jos heidän tunnuksensa alkavat numeroilla 1, 2, 3... ja niin edelleen, ja meidän on etsittävä opiskelija ID-543:lla.
- Jos tietokannassa ei ole indeksiä, meidän on etsittävä levylohkoa alusta alkaen, kunnes se saavuttaa arvon 543. DBMS lukee tietueen lukemisen jälkeen 543*10=5430 tavua.
- Indeksin tapauksessa teemme haun indeksien avulla ja DBMS lukee tietueen lukemisen jälkeen 542*2= 1084 tavua, mikä on hyvin vähemmän kuin edellisessä tapauksessa.
Ensisijainen indeksi
- Jos indeksi luodaan taulukon perusavaimen perusteella, sitä kutsutaan ensisijaiseksi indeksoinniksi. Nämä ensisijaiset avaimet ovat yksilöllisiä jokaiselle tietueelle ja sisältävät tietueiden välisen 1:1-suhteen.
- Koska ensisijaiset avaimet on tallennettu lajiteltuun järjestykseen, hakutoiminto on varsin tehokas.
- Ensisijainen indeksi voidaan luokitella kahteen tyyppiin: Tiheä indeksi ja Harva indeksi.
Tiheä indeksi
- Tiheä indeksi sisältää indeksitietueen jokaiselle datatiedoston hakuavaimen arvolle. Se nopeuttaa hakua.
- Tässä indeksitaulukon tietueiden määrä on sama kuin päätaulukon tietueiden määrä.
- Se tarvitsee enemmän tilaa itse hakemistotietueen tallentamiseen. Hakemistotietueissa on hakuavain ja osoitin levyllä olevaan varsinaiseen tietueeseen.
Harva indeksi
- Tietotiedostossa hakemistotietue näkyy vain muutamissa kohteissa. Jokainen kohde osoittaa lohkoon.
- Tässä päätaulukon jokaiseen tietueeseen osoittamisen sijaan indeksi osoittaa välissä oleviin päätaulukon tietueisiin.
Klusterin indeksi
- Klusteroitu indeksi voidaan määritellä järjestetyksi datatiedostoksi. Joskus indeksi luodaan ei-ensisijaisiin avainsarakkeisiin, jotka eivät välttämättä ole yksilöllisiä kullekin tietueelle.
- Tässä tapauksessa tietueen tunnistamiseksi nopeammin ryhmittelemme kaksi tai useampi sarake yksilöllisen arvon saamiseksi ja luomme niistä indeksin. Tätä menetelmää kutsutaan klusterointiindeksiksi.
- Tietueet, joilla on samanlaiset ominaisuudet, ryhmitellään ja näille ryhmille luodaan indeksit.
Esimerkki : oletetaan, että yrityksessä on useita työntekijöitä kullakin osastolla. Oletetaan, että käytämme klusteriindeksiä, jossa kaikki samaan Dept_ID:hen kuuluvat työntekijät otetaan huomioon yhdessä klusterissa ja indeksiosoittimet osoittavat klusteria kokonaisuutena. Tässä Dept_Id on ei-ainutlaatuinen avain.
Edellinen skeema on vähän hämmentävä, koska yhden levylohkon jakaa tietueet, jotka kuuluvat eri klusteriin. Jos käytämme erillistä levylohkoa erillisille klusteille, sitä kutsutaan paremmaksi tekniikaksi.
vuosineljänneksiä
Toissijainen indeksi
Harvassa indeksoinnissa taulukon koon kasvaessa myös kartoituksen koko kasvaa. Nämä kartoitukset säilytetään yleensä ensisijaisessa muistissa, jotta osoitteen haun pitäisi olla nopeampaa. Sitten toissijainen muisti etsii todellista dataa kartoituksesta saadun osoitteen perusteella. Jos kartoituskoko kasvaa, itse osoitteen hakeminen hidastuu. Tässä tapauksessa harva indeksi ei ole tehokas. Tämän ongelman ratkaisemiseksi otetaan käyttöön toissijainen indeksointi.
Toissijaisessa indeksoinnissa otetaan käyttöön toinen indeksointitaso kartoituksen koon pienentämiseksi. Tässä menetelmässä sarakkeiden valtava alue valitaan aluksi siten, että ensimmäisen tason kartoituskoko tulee pieneksi. Sitten jokainen alue jaetaan edelleen pienempiin alueisiin. Ensimmäisen tason kartoitus tallennetaan ensisijaiseen muistiin, jotta osoitteenhaku on nopeampaa. Toisen tason kartoitus ja todelliset tiedot tallennetaan toissijaiseen muistiin (kiintolevyyn).
Esimerkiksi:
- Jos haluat löytää kaaviosta heiton 111 tietueen, se etsii korkeimman merkinnän, joka on pienempi tai yhtä suuri kuin 111 ensimmäisen tason indeksistä. Tällä tasolla se saa 100.
- Sitten toisella indeksitasolla se taas tekee max (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
- Näin haku suoritetaan tällä menetelmällä. Myös lisääminen, päivittäminen tai poistaminen tapahtuu samalla tavalla. =>