Jeg har en MySQL-tabell som jeg bruker til å loggføre endringer som skjer i noen koordinatsystemer. Jeg har en håndfull kolonner, blant annet 3 for koordinater (en integer for hver dimensjon). Jeg ender opp med ganske mange rader i denne tabellen, og nå begynner det å bli aktuelt å optimalisere den. Her er jeg på litt ukjent farvann, og jeg ønsker litt feedback på tabellstrukturen min.
Ut i fra det jeg har lest om MySQL, så fungerer indekser ved at databasen på ett eller annet vis lagrer informasjon om tabellen som den bruker for å raskere kunne utelukke rader fra spørringer, sånn at den slipper å bla gjennom hele greia fra A til Å hver gang jeg leter etter noe.
Det er i all hovedsak to spørringer som kjøres mot denne tabellen. Det er mange inserts, og av og til en select. Insert blir vel forhåpentligvis ikke påvirket av tabellens størrelse. Når jeg selecter, så har jeg navnet på koordinatsystemet dette gjelder for (en varchar), og de tre tallene for koordinatet.
Er det en god idé å lage indekser for alle disse fire kolonnene, eller vil det bare redusere ytelsen å ha så "mange"? Hvilke situasjoner er det som vil føre til at indekser gjør spørringene tregere? Hvordan påvirker dette databaseserveren ellers, i form av lagringsplass, for eksempel?
Ut i fra det jeg har lest om MySQL, så fungerer indekser ved at databasen på ett eller annet vis lagrer informasjon om tabellen som den bruker for å raskere kunne utelukke rader fra spørringer, sånn at den slipper å bla gjennom hele greia fra A til Å hver gang jeg leter etter noe.
Det er i all hovedsak to spørringer som kjøres mot denne tabellen. Det er mange inserts, og av og til en select. Insert blir vel forhåpentligvis ikke påvirket av tabellens størrelse. Når jeg selecter, så har jeg navnet på koordinatsystemet dette gjelder for (en varchar), og de tre tallene for koordinatet.
Er det en god idé å lage indekser for alle disse fire kolonnene, eller vil det bare redusere ytelsen å ha så "mange"? Hvilke situasjoner er det som vil føre til at indekser gjør spørringene tregere? Hvordan påvirker dette databaseserveren ellers, i form av lagringsplass, for eksempel?