Ett index används för att snabba upp sökningar i en databas.
Säg att du har en tabell med personuppgifter
personnummer!förnamn!efternamn!övrigt
------------------------------
1906147801!Karin!Nilsson
2503129339!Roland!Ögren
5005121065!Britta!Johansson
5306097536!Anders!Svensson
personnummmer är primärnyckel och kan bara innehålla unika värden. Primärnyckelskolumner blir oftast indexerade automatiskt.
De flesta sökningar kommer förmodligen ske på för och efternamn. För att hitta ett namn så måste man söka igenom alla poster då namnen inte ligger i någon speciell ordning. Om man har 100 poster så är det inte så kostsamt men söktiden växer linjärt med antalet poster.
För att minska söktiden så kan man skapa ett index på för och efternamn. Databashanteraren kommer då att lägga till en extra tabell som är sorterad efter innehållet i dessa kolumner
efternamn!förnamn!referens
------------------------------
Johansson!Britta
Nilsson!Karin!
Svensson!Anders
Ögren!Roland
i indexet finns också en referens till den ursprungliga tabellen så att man enkelt kan hitta den posten. I och med att data ligger sorterat så kan man söka rätt på data mycket snabbare. Exakt hur sökningen går till och hur referensen till tabellen ser ut skiljer sig mellan olika databashanterare.
Ett index innebär en ökad kostnad för update/insert/delete operationer då man ändrar både i tabellen och i indexet.
Korrekta index är det viktigaste för att få bra prestanda i en databas, speciellt om man joinar tabeller.
Om man har tre tabeller med vardera 1000 rader och gör en join mellan dessa utan att det finns några index så innebär det att man måste läsa 1000*1000*1000 = 1 miljard poster.
Jag har sett exempel där man genom att lägga till ett index fått ner söktider från 12 timmar till 1 sekund.
Du kan använda sql för att skapa index
create index index_name on table_name(column_name1,column_name2)
Olika databashanterare kan ha lite olika tillägg som man kan ange.
Hur man skapar ett index via Access eller något annat administrationsverktyg har jag inte en aning om.