Hva er en bitmap-indeks?
En bitmap-indeks er en spesifikk type datastruktur. I informatikk er datastrukturer metoder for å ordne og klassifisere data for å kunne bruke dem på en mest mulig effektiv måte. Fordelen med å bruke denne spesielle datastrukturen er at viss informasjon kan behandles raskere og vil kreve en mindre mengde maskinvareminne. Spesielt brukes en bitmap-indeks ofte når du arbeider med datavarehus.
Begrepet "datavarehus" refererer til en metode for å organisere enorme datamengder. Når dataene er organisert, er det mulig å sile gjennom og plukke ut forskjellige trender eller mønstre slik at de kan forstås bedre. Dette betyr at dataene blir sortert i en tabell og definert av tall som representerer forskjellige verdier i dataene. Generelt er dataindekser av denne typen mer effektive når dataene som defineres ikke inkluderer de samme verdiene gjentatte ganger. En bitmap-indeks brukes derimot best når verdiene gjentas.
Denne typen repetisjon kan beskrives som data med lav kardinalitet - det vil si når informasjonen som vises bare kan ha et veldig lite antall utfall. Derfor vil den samme verdien gjentas flere ganger. Et eksempel på dette er når verdiene definerer mannlige og kvinnelige. Det er bare to forskjellige måter å beskrive kjønn på, så hver kolonne i tabellen vil ha lav kardinalitet og være perfekt å vise med en bitmap-indeks.
Selv om det å vise denne typen data i en indeks gjør at de kan leses raskere, er det en avveining. Den sterkt kondenserte strukturen gjør at den er lett lesbar, men samtidig må data behandles av CPU flere ganger for å dekomprimere den til enklere termer som datamaskinen kan forstå. I tillegg kan det være ekstremt tidkrevende å endre en bitmap-indeks. Siden alt er veldig systematisk og spesifikt, kan en ting som må endres føre til endring gjennom hele strukturen.
En annen fordel med bitmappindeksene er at de krever veldig lite minne lagring. Ofte har en databaseindeks flere komponenter enn selve dataene og krever ekstra plass for å bli lagret. Når du bruker bitmappindeksen, er dette ikke tilfelle. Det kondenserer dataene til mindre, lettere å lese deler, og frigjør plass som ikke trenger å brukes.