Jørn Andersen skrev:
> Hvad er de gode tommelfinger-regler for, hvordan man bruger
> indeks?
Det er en afvejning af hvordan databasen bruges.
Generelt kan et indeks gøre søgninger hurtigere mens dataændringer
bliver langsommere. Derfor er fordelingen mellem udvælgelser og
ændringer noget af det første man skal se på.
Hvis man kun sjældent har dataændringer, har man "råd" til flere
indeks end hvis man hele tiden opdaterer data - specielt hvis der
er flere brugere der opdaterer.
Dernæst skal man se på hvor indeks kan gøre en forskel. De felter
der er relevante at indeksere er dem der søges på eller sorteres
efter, samt felter i join-udtryk. Da joins ofte mellem tabeller der
i forvejen er relateret, vil den ene side (primærnøglen i
modertabellen) i forvejen have et indeks (da primærnøglen altid er
indekseret.
Mht. søgninger skal man huske at et indeks ikke kan bruges til
noget hvis man laver wildcard-søgninger med jokertegn i starten
(altså WHERE felt LIKE '%foo%' eller WHERE felt LIKE '%@mail.dk')
- sådan en søgning udføres ved at løbe hele tabellen igennem, og et
evt. indeks bliver slet ikke brugt.
> Nu har jeg sjældent voldsomt store databaser,
Samme her - og det er både godt og skidt. Det er godt, fordi det
ikke betyder det store om indekseringen er lavet fornuftigt når der
arbejdes på små datamængder. Men det er skidt fordi man så har
svært ved at bedømme om en given indeksering er effektiv alene ud
fra en subjektiv hastighedsvurdering.
Jeg krydsposter med opfølgning til databasegruppen - der sidder
nogle garvede folk der nok kan komme med nogle flere bud på
indekseringsstrategier.
Krydspostet til 2 grupper, opfølgning (FUT) til:
<news:dk.edb.database>
Ordforklaringer: <
http://usenet.dk/ord/lokal.html#fut>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html